2014-09-30 3 views
0

Я хочу использовать экземпляр io, созданный внутри bin/www внутри файла маршрутов.Узел Экспресс включает маршруты с параметрами

Файл 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

Ваш модуль маршрутизации предоставляет маршрутизатор. То, что вы, вероятно, хотите, это нечто подобное.

var express = require('express'); 
var router = express.Router(); 

module.exports = function(app, io) { 

    router.get('/', function(req, res) { 
    res.render('index', { title: 'Express' }); 
    }); 

} 
+0

Ваше предложение не вызывает никаких ошибок, поэтому должно почти работать, когда вы пытаетесь посетить домашнюю страницу, которую он не может загрузить. В окне узла указано GET/- - ms - - – Alex

Смежные вопросы