如何在express框架中将应用程序文件中的路线分开

例如 :

server.js文件

var express = require('express'), app = express(), port = 3000, routes = require('./app/routes/apiRoutes'); routes(app); app.listen(port); 

routes.js文件

 'use strict'; module.exports = function( app ) { var api= require('../controllers/apiController'); app.route('/get').get(api.get); }; 

apiController.js文件

  'use strict'; exports.get = function(req, res) { // console.log( req.app ); // access it but it didn't work ? // here want to access app to set cookie and changed cookie ? }; 

如果有另一种方式,请帮助我感谢:)

如果我正确理解你的问题,用路线你可以做这样的事情:

routes.js文件中:

 var router = require('express').Router() router.get('/home', function(req, res, next) { res.render('index') }) module.exports = router 

server.js文件中:

 var mainRoutes = require('./routes.js') app.use(mainRoutes) 

最好的方法(在我看来)使用控制器从另一个文件它使用exports.functionName表示法:

在一些someController.js文件中:

 exports.homePage = function(req, res) { res.render('index') } 

所以,你的路由器将如下所示:

 var router = require('express').Router() var someController = require('./someController.js') router.get('/home', someController.homePage) module.exports = router 

以不同的方式,在app.use使用路线

app.js

 const express = require('express'), app = express(), port = 3000, routes = require('./app/routes/apiRoutes'); app.use(routes); app.listen(port); 

apiRoutes.js

 const router = require('express').Router(), apiController = require('../controllers/apiController'); router.get( '/get', apiController.get); module.exports = router; 

检查这个例子: app.js , 一些路由文件