我在節點 js 和 POST 方法中創建了 API,將主體設為未定義。如何獲取使用 fetch 傳遞的值?
NodeJs的代碼-------------------------------------------
const express=require('express');
const app=express()
const port=3000
const fs=require('fs');
app.get('/',(req,res)=>{
res.send('hello world!');
});
app.get('/movies',(req,res)=>{
fs.readFile(__dirname '/movies.json','utf-8',(err,data)=>{
res.send(data);
});
});
app.post('/movies',(req,res)=>{
console.log(req.body);
});
app.listen(port,()=>{
console.log(`app listening at http://localhost:${port}`)
});
HTML代碼------------------------
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form onsubmit="submitted(event)">
<input id="field" type="text" required="true">
<button type="submit">save</button>
</form>
</body>
<script>
function submitted(e){
e.preventDefault();
const value=document.getElementById('field').value;
await fetch('http://localhost:3000/movies',{
method:'POST',
body:{value},
mode:'no-cors',
headers:{
"Content-Type" : "application/json",
'Access-Control-Allow-Origin':'*'
}
});
}
</script>
</html>
uj5u.com熱心網友回復:
您需要使用中間件來正確決議正文。看起來您正在發送 JSON,因此您需要express提供的bodyParser中間件。
uj5u.com熱心網友回復:
那么你有兩個問題:
1 問題:
你需要把你的身體像
body:JSON.stringify({value})
2 問題:
在 express 中,你需要決議你的身體。對于那個快遞提供.json()
const express=require('express');
const app=express()
const port=3000
const fs=require('fs');
app.use(express.json())
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/328773.html
標籤:javascript 节点.js 表达
