2014-01-27 46 views
0

我這個普通expressjs app.js把app.get()路線INA單獨的文件

/** 
* Module dependencies. 
*/ 

var express = require('express'); 
var routes = require('./routes'); 
var user = require('./routes/user'); 
var http = require('http'); 
var path = require('path'); 

var app = express(); 

// all environments 
app.set('port', process.env.PORT || 3000); 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.json()); 
app.use(express.urlencoded()); 
app.use(express.methodOverride()); 
app.use(app.router); 
app.use(express.static(path.join(__dirname, 'public'))); 

// development only 
if ('development' == app.get('env')) { 
    app.use(express.errorHandler()); 
} 

app.get('/', routes.index); 
app.get('/users', user.list); 

http.createServer(app).listen(app.get('port'), function(){ 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

,我想刪除

app.get('/', routes.index); 
app.get('/users', user.list); 

,並把它們放在一個單獨的file.I上午嘗試這種

module.exports = function(/* any dependency? */){ 
app.get('/', routes.index); 
app.get('/users', user.list); 
} 

,並在app.js文件我有require('./routed.js');

但這不起作用。我該如何解決這個問題?

回答

0

試試這個:

app.use(express.static(path.join(__dirname, 'public'))); 

require('./routed.js')(app); 

而且在./routed.js

module.exports = function(app){ 
app.get('/', routes.index); 
app.get('/users', user.list); 
} 
+0

我修復了一下,但它的工作原理,但我不知道它的性能成本。 –

+0

您需要在'routed.js'文件中使用'var routes = require('./ routes'); var user = require('./ routes/user');'以使其工作。 –

1

我把krasu的答案,修改了一下在

routed.js

var routes = require('./routes'); 
var user = require('./routes/user'); 

module.exports = function(app){ 
app.get('/', routes.index); 
app.get('/users', user.list); 
} 

app.js

require('./routed.js')(app); 

這個工程。

相關問題