#javascript #node.js
#javascript #node.js
Вопрос:
Начал использовать node.js и пытаюсь использовать запрос POST с выборкой, но когда я его запускаю, он просто возвращается как {} в коде на стороне сервера консоли ->
const express = require("express")
const app = express()
app.listen(3000, () => console.log("listening at 3000"))
app.use(express.static("public"))
app.use(express.json())
app.post("/api", (request,response) => {
console.log("Made the POST")
console.log(request.body)
})
выборка ->
async function submitValues(){
const start = document.getElementById("start").value;
const end = document.getElementById("end").value
// console.log(start,end)
// findShortestPath(graph, start, end)
data = {start, end}
options = {
method: "POST",
headers: {
"Content-Type":"applcation/json"
},
body: JSON.stringify(data),
}
await fetch("/api", options);
}
Это то, что я написал, но просто не могу понять это
Комментарии:
1. его
application/json"
2. что вы получаете , когда вы
console.log(request)
?3. есть ли у вас другие промежуточные программы, подключенные после .post?
4. ваш
post
обратный вызов api ничего не возвращает, и вам нужен анализатор тела5. ему не нужен анализатор тела, он уже использует встроенный анализатор тела из express
express.json()
Ответ №1:
Сначала вам нужно установить Node.js промежуточное программное обеспечение для разбора тела:
$ npm install --save body-parser
и затем:
const bodyParser = require('body-parser');
app.use(bodyParser.json());
Комментарии:
1. ему нужен анализатор тела, поскольку он регистрирует «request.body», почему вы дали мне -1 🙁
Ответ №2:
app.post("/api", (request,response) => {
console.log("Made the POST")
console.log(request.body)
})
Этот метод ничего не возвращает, поэтому не уверен, почему вы удивлены, что этот API ничего не возвращает.