为什么我的 fetch post 不工作它没有响应?
why my fetch post is not working it is not responding?
addwordform.addEventListener('submit', (event)=>{
event.preventDefault();
const formdata=new FormData(addwordform);
const word=formdata.get('addword');
const description =formdata.get('addiscription');
const worddata={
word,description,totalcount
};
console.log(worddata);
fetch(API_URL,{
method:'POST',
headers:{
'content-Type':'application/json'
},
body:JSON.stringify(worddata),
}).then(response=>response.json()).then( data =>{
console.log(data);
});
});
这是客户端javascript
这里 API_URL="http://localhost:3005/word"
服务器端代码是
const express= require('express');
const serveStatic = require('serve-static');
const datastore= require('nedb');
const app= express();
app.listen(3005,()=>{console.log("listening on :http://localhost:3005")});
app.use(serveStatic('public',{'index':['client.html']}));
const database=new datastore('database.db');
database.loadDatabase();
app.post('/word',(req,res)=>{
const data=req.body;
database.insert(data);
res.json();
});
我正在为客户端使用 express 节点框架和香草 javascript 我想要的只是 post 来自具有 id=addwordform 的表单的数据,我正在使用 nedb a light节点中的权重数据库管理
.问题是我从客户端发送的 worddata 没有进入服务器端 "req" 所以我不能将它保存在数据库中并且最终我不能 "res" 它回来?
如果您使用的是 express 版本 >= 4.16
。正文解析器与 express 捆绑在一起。
它使用 JSON 有效载荷解析传入请求,并基于主体解析器。
不需要使用body-parser
。 Here is the documentation
您只需在需要您的路线之前添加此代码。
app.use(express.json());
这里是 Whosebug original post.
addwordform.addEventListener('submit', (event)=>{
event.preventDefault();
const formdata=new FormData(addwordform);
const word=formdata.get('addword');
const description =formdata.get('addiscription');
const worddata={
word,description,totalcount
};
console.log(worddata);
fetch(API_URL,{
method:'POST',
headers:{
'content-Type':'application/json'
},
body:JSON.stringify(worddata),
}).then(response=>response.json()).then( data =>{
console.log(data);
});
});
这是客户端javascript 这里 API_URL="http://localhost:3005/word" 服务器端代码是
const express= require('express');
const serveStatic = require('serve-static');
const datastore= require('nedb');
const app= express();
app.listen(3005,()=>{console.log("listening on :http://localhost:3005")});
app.use(serveStatic('public',{'index':['client.html']}));
const database=new datastore('database.db');
database.loadDatabase();
app.post('/word',(req,res)=>{
const data=req.body;
database.insert(data);
res.json();
});
我正在为客户端使用 express 节点框架和香草 javascript 我想要的只是 post 来自具有 id=addwordform 的表单的数据,我正在使用 nedb a light节点中的权重数据库管理 .问题是我从客户端发送的 worddata 没有进入服务器端 "req" 所以我不能将它保存在数据库中并且最终我不能 "res" 它回来?
如果您使用的是 express 版本 >= 4.16
。正文解析器与 express 捆绑在一起。
它使用 JSON 有效载荷解析传入请求,并基于主体解析器。
不需要使用body-parser
。 Here is the documentation
您只需在需要您的路线之前添加此代码。
app.use(express.json());
这里是 Whosebug original post.