2012-01-20 13 views
5

私はnodejsに自分の最初のモジュールを書きます。私はGoogleキャッシュから私のサイトを解析する必要があります。投稿はテーブルポストの地図です。 「TypeError例外:未定義のプロパティ 『プロトタイプ』を設定することはできません」私はこのモジュールを使用しようとしたとき、私はこのエラーがありますか?:node.jsでプロトタイプを使用する方法

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

感謝このエラーを修正する方法 をそれは私のコードです。

私はあなたが

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

を意味しそして最初にあなたがそれを修正するために、exports自体という名前の関数を作っていると、この

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

のようにアクセス考える

答えて

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

module.exports.prototypeを使用します。

関連する研究材料:http://kangax.github.com/nfe/

+0

module.exports.Post =関数ポスト(documentDOM、オプション){...}とmodule.exports.Post.prototype = {...} - これは、すべてのポストインチjs。次に、app.jsでvar Post = require( './ post.js'); var post =新しい投稿({}、{}); そして、私をスローします。エラー:Object.CALL_NON_FUNCTION_AS_CONSTRUCTOR(ネイティブ) –

+2

@v.tsurka: 'var Post = require( './ post.js')。 var post = new Post({}、{}); '関数はエクスポートの' .Post'プロパティに置かれているので、そのプロパティを使って関数にアクセスする必要があります。 –

+0

大きな感謝はすべてうまくいった! –

関連する問題