這是我的 server.js 檔案,其中使用 express 創建了路由。
const express = require('express');
const products = require('./data/products');
const app = express();
app.get('/', (req, res) => {
res.json('Api is running succesfully...');
});
app.get('/api/products', (req, res) => {
res.json(products);
});
app.get('/api/product/:id', (req, res) => {
const product = products.find((x) => x._id === req.params.id);
res.json(product);
});
app.listen(5000, console.log('server is running at port 5000'));
所以我在 products.js 檔案中使用了以下內容來匯出它:
module.exports = products;
問題是當我去路由 localhost:5000/api/products 時我得到產品資料但是當我去路由 localhost:5000/api/product/1 時我沒有得到任何東西當我控制臺記錄 req.params.id它給出了我在路線中的 ID 號,即 1,但是當我記錄產品時,它給了我未定義的資訊。請幫助我為什么我沒有得到單一產品?
uj5u.com熱心網友回復:
Express 總是在 中回傳一個字串req.params.<VAR>,所以如果你確定你會從 中得到數字,params然后將字串轉換為數字parseInt或 。
全部轉換為數字
products.find((x) => x._id === req.params.id);
全部轉換為字串
products.find((x) => x._id.toString() === req.params.id.toString());
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/351718.html
