我使用 Express 作為我的后端,由于某種原因,我的 GET 請求無法查詢 Postgres 資料庫。我很確定我應該使用 GET 請求來查詢資料庫,但似乎無法讓它作業。我收到以下錯誤。
SyntaxError: Unexpected token < in JSON at position 0
這是GET請求的代碼
const express = require("express");
const router = express.Router();
const pool = require("./db");
router.get("/", async (req, res, next) => {
pool.connect((err, client, done) => {
if (err) throw err;
client.query("SELECT * FROM pledges", (err, ress) => {
done();
if (err) {
console.log(err.stack);
} else {
console.log(ress.rows[0]);
res.json(ress.rows.reverse());
}
});
});
});
但是,如果我將其更改為 POST 請求,則會得到正確的查詢并回傳整個表。我究竟做錯了什么?
const express = require("express");
const router = express.Router();
const pool = require("./db");
router.post("/", async (req, res, next) => {
pool.connect((err, client, done) => {
if (err) throw err;
client.query("SELECT * FROM pledges", (err, ress) => {
done();
if (err) {
console.log(err.stack);
} else {
console.log(ress.rows[0]);
res.json(ress.rows.reverse());
}
});
});
});
這是我的 FETCH
useEffect(() => {
fetch("/pledges")
.then((response) => response.json())
.then((data) => {
console.log(data);
setPledges(data);
})
.catch((error) => {});
}, []);
使用 POST 請求獲取
useEffect(() => {
fetch("/pledges", {
method: "POST",
})
.then((response) => response.json())
.then((data) => {
setPledges(data);
})
.catch((error) => {});
}, []);
uj5u.com熱心網友回復:
可能服務器回傳的不是 JSON 的內容,其中包含“<”的內容,例如 XML 或 HTML。嘗試適當設定內容標題。
fetch(url, {
method: "GET",
headers: {
"Content-Type": "application/json"
}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/353362.html
