Как использовать прототип в node.js - PullRequest
5 голосов
/ 20 января 2012

Я пишу свой первый модуль на nodejs.Мне нужно разобрать мой сайт из кеша Google.Пост - карта столового поста.Когда я пытаюсь использовать этот модуль, у меня появляется эта ошибка: «Ошибка типа: невозможно установить свойство« prototype »undefined» Как исправить эту ошибку? Это мой код:

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;
    }
}

Спасибо.

1 Ответ

6 голосов
/ 20 января 2012
module.exports = function Post((documentDOM,options)

Я думаю, что вы имели в виду

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

И затем получить к нему доступ, как это

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

Когда вы сначала создаете exports саму именованную функцию , для ее изменения вы должны использовать module.exports.prototype.

Соответствующий учебный материал: http://kangax.github.com/nfe/

...