我有一个 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?
我只是想分离一条路线,而不是全部。
在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"));
在您的情况下 Node 这一点很重要,因为您正在使用 id
的参数,你的shuffle
路线需要位于 :id
之前路线。否则 express 会解释shuffle
作为id
(希望不是 id)
如果你只想“外包”"/v1/games/shuffle
,确保位于 app.get("/v1/games/:id"...)
之前在你的 server.js 文件中
我是一名优秀的程序员,十分优秀!