我有一个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
中。
我仔细阅读了这篇文章,但由于文件名相似,我不太了解它。 How to separate routes on Node.js and Express 4?
我只想分开一条路线,而不是全部。
答案 0 :(得分:1)
在routes
中创建一个名为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
路线之前。否则快递会将shuffle
解释为id
(希望不会是id)
如果你只想"外包" "/v1/games/shuffle
,请确保它位于server.js文件中的app.get("/v1/games/:id"...)
之前