利用express.Router()对我们的应用程序进行API调用:
var express = require('express');
var app = express();
var router = express.Router();
每次API调用之前 router.use
console.logs:
router.use(function(req, res, next) { // run for any & all requests
console.log("Connection to the API.."); // set up logging for every API call
next(); // ..to the next routes from here..
});
我们如何将我们的路线导出到folder/routes.js
并从我们当前所在的主 app.js 访问这些路线:
router.route('/This') // on routes for /This
// post a new This (accessed by POST @ http://localhost:8888/api/v1/This)
.post(function(req, res) {
// do stuff
});
router.route('/That') // on routes for /That
// post a new That (accessed by POST @ http://localhost:8888/api/v1/That)
.post(function(req, res) {
// do stuff
});
...当我们为每条路线添加前缀时:
app.use('/api/v1', router); // all of the API routes are prefixed with '/api' version '/v1'
答案 0 :(得分:7)
在新路线模块中(例如在api/myroutes.js
中),使用module.exports = myRouter;
var express = require('express');
var router = express.Router();
router.use(function(req, res, next) { // run for any & all requests
console.log("Connection to the API.."); // set up logging for every API call
next(); // ..to the next routes from here..
});
router.route('/This')
.get(function(req, res) { });
.post(function(req, res) { });
...
module.exports = myRouter;
然后您可以在主服务器/应用程序文件中要求该模块:
var express = require('express');
var app = express();
...
var myRoutes = require('./api/myRoutes');
app.use('/api', myRoutes); //register the routes
答案 1 :(得分:1)
在app.js文件中,您可以拥有以下内容:
//api
app.use('/', require('./api'));
在文件夹api
中,您可以拥有' index.js`文件,您可以在其中输入以下内容:
var express = require('express');
var router = express.Router();
//API version 1
router.use('/api/v1', require('./v1'));
module.exports = router;
在v1
文件夹index.js
中,这样的内容:
var express = require('express');
var router = express.Router();
router.use('/route1', require('./route1'));
router.use('/route2', require('./route2'));
module.exports = router;
文件route1.js
可以具有以下结构:
var express = require('express');
var router = express.Router();
router.route('/')
.get(getRouteHandler)
.post(postRouteHandler);
function getRouteHandler(req, res) {
//handle GET route here
}
function postRouteHandler(req, res) {
//handle POST route here
}
module.exports = router;
route2.js
文件可以具有相同的结构。
我认为开发节点项目非常方便。