gpt4 book ai didi

node.js - 如何将不同模块中的一条路由与index.js 中的 "require it"分开?

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:57 26 4
gpt4 key购买 nike

我有一个 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 文件中

关于node.js - 如何将不同模块中的一条路由与index.js 中的 "require it"分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39937531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com