2017-09-19 40 views
1

分開的應用程序文件路徑例如:如何在快遞框架

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 ? 

}; 

如果有另一種方式請幫我謝謝:)

回答

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

以不同的方式使用路線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