發送GET或任何帶有 URL 引數的請求時會出現問題。
例如我的
index.js
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.get("/:name", function (req, res) {
let name = req.params.name;
console.log("Hello " name " from /:name");
res.send("Hello " name " from /:name");
});
app.get("/", function (req, res) {
console.log("Hello world from /");
res.send("Hello world from /");
});
app.listen(3000, () => {
console.log("Server is running on port " 3000)
});
因為http://localhost:3000/它作業得很好。

/:name當我們使用 URL時嘗試點擊路由時,就會出現問題,http://localhost:3000/?name=NODE它會轉到與上面相同的路由。在/

但最瘋狂的部分是當我們把這http://localhost:3000/NODE只是一個沒有實作的新的不同路線。
它正在得到:/name沒有任何意義的回應。

是BUG還是我做錯了什么還是我不知道的新事物?
我目前使用的是Windows11,這個問題也出現在我朋友使用Ubuntu的PC上
uj5u.com熱心網友回復:
當您將路線定義為
/:name
這稱為路徑引數,它的使用方式如下:
GET /yourname
這就是為什么它有效:
GET /NODE
您用來呼叫端點 (?name=xxx) 的內容稱為查詢引數,您可以從 '/' 端點獲取該名稱,如下所示:
let name = req.query.name;
uj5u.com熱心網友回復:
我想你快到了,但不/:name匹配/?name=,但匹配。/NODE
這正是預期會發生的事情。如果這讓您感到驚訝,請重新閱讀檔案,因為它應該非常清楚。
uj5u.com熱心網友回復:
我想我對查詢引數和引數感到困惑。
讓:給定這個 URLhttp://www.localhost:3000/NODE?a=Debasish&b=Biswas
我們將有:
請求。詢問
{
a: 'Debasish',
b: 'Biswas'
}
請求。引數
{
param1: 'NODE'
}
在這里,我正在發送查詢,但想接收引數。那就是我出錯的地方。
為了更好地理解檢查:
Node.js:req.query[] 和 req.params 之間的區別
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/525206.html
