2012-01-20 5 views
5

nodej에 내 첫 번째 모듈을 씁니다. 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) 

을 의미 생각 그리고 처음 당신이 만들고있어 exports은이

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

처럼 액세스 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') Post; var post = new Post ({}, {});'함수가 이제 내보내기의'.Post' 속성에 있으므로이 속성을 통해 함수에 액세스해야합니다. –

+0

큰 감사 덕분에 모두 잘되었습니다! –

관련 문제