Node.js的错误:模块不是函数

时间:2015-10-04 13:09:34

标签: javascript node.js

我有一个主文件 - index.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:demo不是函数

我是node.js的新手,我想知道为什么这不起作用。也许我不明白模块的真正原理? 谢谢你先回答我。

3 个答案:

答案 0 :(得分:0)

您未正确导出模块。它应该是:

exports.demo = function ....

答案 1 :(得分:0)

尝试将您的演示模块包含在index.js中:
unsigned long long read_ULL_int() { ... unsigned long long ret = 0; ... }

答案 2 :(得分:0)

对于第一次在node.js中使用模块的其他新手。

首先,制作了一个名为您的module.js 名称的新模块 其次,没有必要做" npm install demo --save",如果你愿意,也可以。 第三,在您想要调用此模块的主要js中,关注模块的名称路径,您应该编写var anyName = require('the name of your module');,如果他们在同一目录中,您应该这样写:var anyName = require(' ./模块的名称');