Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How use prototype in node.js

I write my first module on nodejs. I need parse my site from google cache. Post is map of table post. When i try use this module i have this error: "TypeError: Cannot set property 'prototype' of undefined" How fix this error?It's my code:

module.exports = function Post(documentDOM,options)
{
    this.opts = $.extend({id:0,author_id:0},options);
    this.doc = documentDOM;
    this.post  = {
        id: 0,
        name: '',
        alt_name: '',
        notice: '',
        content: '',
        author: '',
        author_id: 0,
    };
}

module.exports.Post.prototype = {
    init: function() {
        this.post.id = this.opts.id;
        this.post.author_id = this.opts.author_id;
    },

    content: function() {
        content = this.doc.find('.fullnews-content').html();
        if(!content.length)
            content = doc.find('.article-content').html();
        return content;
    }
}

Thank.

like image 626
v.tsurka Avatar asked Jan 20 '12 17:01

v.tsurka


1 Answers

module.exports = function Post((documentDOM,options)

I think you meant

module.exports.Post = function((documentDOM,options)

And then access it like this

var Post = require('./post.js').Post;

With the first you're making exports itself a named function, to modify it you would use module.exports.prototype.

Relevant study material: http://kangax.github.com/nfe/

like image 53
Ricardo Tomasi Avatar answered Sep 19 '22 21:09

Ricardo Tomasi