node.js - 如何在 Node.js 上的 Express.js 中传递查询字符串并获取对象结果?
问题描述
我在 nodeJs 中创建我的 api 并表达,我想通过传递字符串参数来获取一个对象,但我无法获取这个对象。
这是我的应用
const express = require('express')
const app = express()
const produits = [
{
"codeProduit":"78",
"nomCat":"nomCat11",
"typeCat":"typeCat11"
},
{
"codeProduit":"82",
"nomCat":"nomCat21",
"typeCat":"typeCat21"
},
{
"codeProduit":"69",
"nomCat":"nomCat31",
"typeCat":"typeCat31"
}
]
//http://localhost:3000/produits?codeProduit=78
app.get('/produits', (req, res) => {
if(req.query.codeProduit != undefined && req.query.codeProduit != '') {
res.json(produits[(req.query.codeProduit)])
} else {
res.json(produits)
}
})
app.get('/produits', (req, res) => {
res.json(produits)
})
app.listen(3000,() => {
console.log('Started on port 3000')
})
我想得到这个对象
{
"codeProduit":"78",
"nomCat":"nomCat11",
"typeCat":"typeCat11"
}
当我调用这个网址时:http://localhost:3000/produits?codeProduit=78
请问我该怎么做?
解决方案
你正在做produits[78]
的是未定义的,所以你需要使用find
来获得预期的产品
app.get('/produits', (req, res) => {
if (req.query.codeProduit != undefined && req.query.codeProduit != '') {
const result = produits.find(p => p.codeProduit === req.query.codeProduit);
result ? res.json(200).json(result) : res.status(404).json();
} else {
res.json(produits);
}
});
推荐阅读
- ffmpeg - 使用 ffmpeg 创建一个黑色背景的音乐视频
- vimeo - 即使视频可用,也为 vimeo api 获取 404?
- image - Spring内容,如何在其他页面获取图片
- python - 提取包含列名或表条目中特定字符串的熊猫数据框
- azure-devops - Azure 开发运维。通过运行时变量定义变量组
- python-3.x - 如何在 Python 中将函数放入列表中?
- java - Android片段被另一个片段覆盖
- sass - 如何使用 Vaadin 7 和 maven 编译其他非主题 SCSS 文件
- sql-server - T-SQL CREATE DATABASE 结合 COLLATE 和 FILESPEC(s)
- r - 如果在其他列中满足条件,则将值附加到向量