Node Express包含带参数的路由

时间:2014-09-30 15:59:55

标签: node.js express

我想在路线文件中使用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)

1 个答案:

答案 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' });
   });

}