簡體   English   中英

Mongoose find() 方法不適用於查詢參數

[英]Mongoose find() method not working with query parameters

我正在嘗試使用 Node Js 和 mongoose 在 mongodb 中查找特定文檔。

但是當我按照代碼片段運行時,我沒有得到數據庫的響應。

 const express = require("express"); const router = express.Router(); const Vehicle = require("../db/models/vehicle"); //api to get single vehicle data router.get("/vehicle", async (req, res, next) => { try { const { name } = req.query; console.log(name); const vehicle = await Vehicle.find({ name: name }); res.status(200).json(vehicle); } catch (error) { res.status(500).json({ message: error }); } });

[沒有回應的郵遞員圖片][1]

但是當我按照代碼片段運行時,我得到了數據庫的響應。

 const express = require("express"); const router = express.Router(); const Vehicle = require("../db/models/vehicle"); //api to get single vehicle data router.get("/vehicle", async (req, res, next) => { try { const vehicle = await Vehicle.find({ name: "BMW II" }); res.status(200).json(vehicle); } catch (error) { res.status(500).json({ message: error }); } });

[帶回復的郵遞員圖片][2] 我該怎么辦? [1]: https://i.stack.imgur.com/7svLJ.png [2]: https://i.stack.imgur.com/ZgxRa.png

正如所看到,您正在將查詢作為name="BMW II"發送,然后在服務器中您的 name 變量將設置為'"BMW II"'因此您不會得到正確的結果。

//your req will have a field like this
req = {query: { name: '"BMW II"' },...}

發送查詢字符串時,即使它是字符串,也不要用引號引起來。 express 中的查詢字符串在后端默認標識為字符串。
只需像name=BMW II一樣發送,您的 name 變量將被設置為'BMW II'

req = {query: { name: 'BMW II' },...}

如果您發送一個數字作為查詢字符串,比如num=5那么在后端,如果您願意對其進行計算,您將把它解析為 integer,因為它是從req.query接收到的字符串

req = {query: { num: '5' },...}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM