如何在不同的模块中分离一条path,并在index.js中“需要它”?
我有一个Node / Express应用程序,我需要将一个路线移动到不同的文件。 这是我的index.js。
'use strict'; let express = require('express'), bodyParser = require('body-parser'), logger = require('morgan'), _ = require('lodash'); let app = express(); app.use(logger('combined')); app.use(express.static('public')); app.use(bodyParser.json({})); app.use(bodyParser.urlencoded({ extended: true })); console.log("I am open"); let users = [///stuff ]; let games = []; // Handle POST to create a user session app.post('/v1/session', function(req, res) { // do things }); // Handle POST to create a new user account app.post('/v1/user', function(req, res) { // do things }); // Handle GET to fetch user information app.get('/v1/user/:username', function(req, res) { // do things }); // Handle POST to create a new game app.post('/v1/game', function(req, res) { // do things }); // Handle GET to fetch game information app.get('/v1/game/:id', function(req, res) { // do things }); let server = app.listen(8080, function () { console.log('Example app listening on ' + server.address().port); });
我想要一个新的服务器端路由(GET /v1/game/shuffle?jokers=false)
,但我不太明白如何将它分离成一个新的文件,也许在./routes/shuffleRoute.js
。
我读了这个,但由于文件名相似,我不太明白。 如何分离Node.js和Express 4上的路线?
而我只是想分开一条路线,而不是全部。
在routes
创build一个名为shuffleRoute.js
的文件。 在这个文件中写下类似的东西
var express = require('express'); var router = express.Router(); router.get("/shuffle", function (req, res, next) { // magic here }); router.get("/:id", function (req, res, next) { // more magic here }); module.exports = router;
并在你的server.js
app.get("/v1/games", require("./routes/shuffleRoute.js"));
在你的情况下,节点是很重要的,因为你正在使用id
参数,你的shuffle
路由需要在:id
路由之前。 否则,express会将shuffle
解释为一个id
(希望不是id)
如果您只想“外包” "/v1/games/shuffle
,请确保在app.get("/v1/games/:id"...)
的server.js文件