2015-10-04 69 views
4

我有一個主文件 - index.js:Node.js.錯誤:模塊是不是一個函數

var express = require('express'); 
var app = express(); 
var request = require('request'); 

var demo = require('demo'); 

// This app will only respond requests to the '/scrape' URL at port 3000. 
app.get('/scrape', function (req, res) { 
    var url = "http://www.l.com"; 

    request(url, function (error, response, html) { // two parameters: an URL and a callback 
     if (!error) { 
      demo(html); 
     } 
    }); 
}); 

var server = app.listen(3000, function() { 
    var host = server.address().address; 
    var port = server.address().port; 

    console.log('Example app listening at http://%s:%s', host, port); 
}); 

和我的模塊是demo.js:

module.exports = function (html) { 
    .... 

    return JSON.stringify(json); 
} 

的錯誤是:

TypeError:演示不是一個功能

我是新來的node.js,我想知道爲什麼這不起作用。也許我不明白模塊的真正原理? 謝謝你先回答我。

+3

你的代碼在哪裏演示? – baao

+0

module.exports.demo = function(html){...}? – Adem

+0

是否需要(「leboncoin」)聲明和隨後的函數調用導致該問題?因爲在這裏給出的代碼中根本不需要「demo.js」,所有其他內容都應該可以工作。如果是這樣,你看看示例代碼[這裏](https://github.com/moul/node-leboncoin/tree/master/examples)? – user162097

回答

0

對於誰使用模塊中node.js中首次其它新生。

第一,做了一個叫您module.js名 第二個新模塊,它是沒有必要做「 npm install demo --save」,如果你想,它也還可以。 第三,其中ü要調用此模塊,專注於和模塊的路徑主要JS,你應該寫var anyName = require('the name of your module');,如果他們是在同一個目錄,你應該這樣寫的:var anyName = require('./你的模塊名稱');

0

您無法正確導出模塊。它應該是:

exports.demo = function .... 
+0

抱歉,但我不認爲是出口的問題 –

+0

@LeylaLee你試過了嗎? – Rob

0

嘗試包括您的演示模塊中index.js:
var demo = require('./demo.js');

相關問題