2012-01-20 22 views
5

में प्रोटोटाइप का उपयोग कैसे करें मैं नोडजेस पर अपना पहला मॉड्यूल लिखता हूं। मुझे Google कैश से मेरी साइट पार्स की आवश्यकता है। पोस्ट टेबल पोस्ट का नक्शा है। "लेखन त्रुटि:: अपरिभाषित की संपत्ति 'प्रोटोटाइप' सेट नहीं कर सकता" जब मैं इस मॉड्यूल का उपयोग करने की कोशिश मैं इस त्रुटि है?: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; 
    } 
} 

धन्यवाद कैसे इस त्रुटि को ठीक यह मेरे कोड है।

उत्तर

6
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/

+0

module.exports.Post = समारोह पोस्ट (documentDOM, विकल्प) {...} और module.exports.Post.prototype = {...} - यह सब पोस्ट में। जे एस। फिर app.js var post = आवश्यकता ('./ post.js') में; var post = new post ({}, {}); और था मुझे त्रुटि फेंक: ऑब्जेक्ट। CALL_NON_FUNCTION_AS_CONSTRUCTOR (मूल) –

+2

@ v.tsurka: 'var post = requ ('./ post.js')। पोस्ट; var post = new post ({}, {}); चूंकि फ़ंक्शन अब निर्यात की '.Post' संपत्ति पर स्थित है, इसलिए आपको उस प्रॉपर्टी के माध्यम से इसे एक्सेस करना होगा। –

+0

बड़ा धन्यवाद सब ठीक काम किया! –