2015-10-04 34 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');

相关问题