如何在快速框架中从app文件中分离路由

时间:2017-09-19 06:36:24

标签: node.js 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 ?

 };

如果有其他方式,请帮助我谢谢:)

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

采用不同的方式,在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.jssome route file