nodejs require不是js文件的函数

时间:2018-01-31 07:29:48

标签: javascript node.js require

我想制作一个用于学习的小聊天应用程序,我创建了许多js文件,这些文件是模块化的,但我遇到了一些错误。

  

这是我的boot.js文件

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

var admin = io.of('/app'),
    client = io.of('');

module.exports.app = app;
module.exports.http = http;
module.exports.io = io;
  

这是我的routes.js文件

module.exports = {
    start: function(app) {
        app.get('/', function(req, res) {
            res.sendFile(__dirname + '/index.html');
        });
    }
};
  

这是我的chat.js

var boot = require('./boot');

require('./routes')(boot.app).start();

http.listen(3000, function(){
  console.log('listening on *:3000');
});
  

当我运行节点时出现此错误

require('./routes')(boot.app).start();
                   ^
TypeError: require(...) is not a function

我怎样才能将boot.js中的变量用于其他js文件?

请帮助我。

1 个答案:

答案 0 :(得分:2)

你在这里犯了一个小错误。以下是正确的。

require('./routes').start(boot.app);

routes模块导出一个对象,您可以在其中调用start并使用该函数。