我想在路线文件中使用bin / www内创建的io实例。
www文件看起来像这样
#!/usr/bin/env node
var debug = require('debug')('chat');
var app = require('../app');
var http = require('http').Server(app);
var io = require('socket.io')(http);
var routes = require('../routes/index')(app, io);
app.set('port', process.env.PORT || 3000);
io.sockets.on('connection', routes.chat);
var server = http.listen(app.get('port'), function() {
debug('Express server listening on port ' + server.address().port);
});
并且路由/索引文件看起来像这样
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.render('index', { title: 'Express' });
});
module.exports = router;
尝试启动应用时出现此错误
TypeError: Cannot call method 'indexOf' of undefined at Function.proto.handle (c:\node\myapp\node_modules\express\lib\router\index.js:127:28)
答案 0 :(得分:1)
您的路由模块公开路由器。你可能想要的是这样的。
var express = require('express');
var router = express.Router();
module.exports = function(app, io) {
router.get('/', function(req, res) {
res.render('index', { title: 'Express' });
});
}