2012-01-20 34 views
5

'da prototip nasıl kullanılır? İlk modülümü nodejs'de yazarım. Sitemi google cache'den ayrıştırmam gerekiyor. Gönderi, tablo gönderisinin haritasıdır. "TypeError: tanımsız malı 'prototip' ayarlanamaz" ben bu modülü kullanmak çalıştığınızda bu hata var?: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; 
    } 
} 

Teşekkür Bu hatayı düzeltmek nasıl Benim kod.

cevap

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

Ben kendisi isimli fonksiyon, o sizi değiştirmeye Eğer

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

geliyordu düşünüyorum Ve sonra öncelikle yapıyoruz exports ile bu

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

gibi erişmek module.exports.prototype kullanır.

İlgili Çalışma malzemesi: http://kangax.github.com/nfe/

+0

module.exports.Post = function Mesaj (documentDOM, options) {...} ve module.exports.Post.prototype = {...} - Her post. js. Daha sonra app.js var Post = required ('./ post.js'); var post = yeni Gönderi ({}, {}); Ve bana hata attı: Object.CALL_NON_FUNCTION_AS_CONSTRUCTOR (yerel) –

+2

@ v.tsurka: 'var Post = required ('./ post.js'). var post = new Post ({}, {}); 'Artık işlev, ihracatın' .Post' özelliği altında bulunduğundan, bu özellik aracılığıyla bu sayfaya erişmeniz gerekiyor. –

+0

büyük teşekkürler hepsi iyi çalıştı! –