gpt4 book ai didi

javascript - Express 中间件没有效果

转载 作者:搜寻专家 更新时间:2023-10-31 23:09:42 25 4
gpt4 key购买 nike

我有以下代码:

var express = require('express');
var app = express();
app.use(express.bodyParser());
app.use(express.cookieParser());
var port = Number(process.env.PORT || 5000);

app.get('/test/:id', function(req, res) {
res.send(req.params);
});

app.listen(port);
console.log("Listening on port " + port);

当我在浏览器中点击 http://localhost:5000/test/12345 时,我看到:

[]

但我希望看到带有 id: 12345 的已填充 req.params 对象。知道我做错了什么吗?

谢谢。

最佳答案

查了一下,req.params其实是一个关联数组,和object差不多,但又不完全一样。不确定为什么 express 会这样定义它。它获得的唯一好处是为数组添加了长度属性。 res.send 将尝试对您的输出进行 JSON.stringify,这反过来会看到它是一个数组并且只处理数字索引。因此空 [] 作为返回值。

你可以通过这样做来验证这一点 -

var myParams = {};

Object.keys(req.params).forEach(function(key){
myParams[key] = req.params[key];
});

res.send(myParams);

您还可以看到 JSON.stringify 只关心数字索引,方法是这样定义您的路由 -

app.get('/test/:0', function(req, res) {
res.send(req.params);
});

关于javascript - Express 中间件没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21914006/

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