我想顯示整個資料陣列中的資料,該資料應該滿足請求的 id 與資料的 id 匹配的條件。但是每次我嘗試下面的代碼時,我只會得到“未定義”作為 find 方法的輸出。
代碼
import express from 'express';
import data from "./data.js"
const app=express();
app.get('/products/api/:id',(req,res)=>{
const product = data.products.find((x) => x.id === req.params.id);
if (product) {
res.send(product)
}
else{
res.status(404).send({message:`Product Not Found${req.params.id}`});
}
}) app.get('/products/api',(req,res)=>{
res.send(data.products)
}) app.get('/',function(req,res){
res.send("server is ready")
}) const port=process.env.PORT || 5000 app.listen(5000,()=>{
console.log(`serve at http://localhost:${port}`);
})
uj5u.com熱心網友回復:
您的代碼缺少正文決議中間件。嘗試添加一個
app.use(express.json({ extended: true })) 在您的路線之前。
另請檢查idfromdata.products.find((x) => x.id === req.params.id);是否為 type string。它可能是一個number或ObjectId貓鼬物件 ID。
uj5u.com熱心網友回復:
你需要做的就是,
改變這個:
const product = data.products.find((x) => x.id === req.params.id);
到:
const product = data.products.find((x) => x.id == req.params.id);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/378296.html
標籤:javascript 查询 节点.js 反应 表达
下一篇:在串列上迭代日期時間函式
