【发布时间】:2020-09-25 22:09:27
【问题描述】:
我遇到了这个问题。我正在使用 fetch Post 方法在我的服务器中发布一个我称为“articulo”的对象。 现在我有这个帖子的代码:
async function postArticulo(articulo) {
debugger
const response = await fetch('http://192.168.100.3:3000/articulo', {
method: 'POST',
body: JSON.stringify(articulo)
})
const nuevoArticulo = await response.json();
console.log(nuevoArticulo);
return nuevoArticulo;
}
在我的服务器中,路由和响应是这样的(我在这里使用 express 依赖):
async postArticulo(req, res){
const articulo = req.body;
if(articulo) console.log(articulo.nombre + ' Good');
articulo.codigo = 87654321; //This is just for checking if i could change some value of the object
console.log(articulo.codigo);
return res.json({
nombre: `${articulo.nombre}`,
proveedor: `${articulo.proveedor}`,
rubro: `${articulo.rubro}`,
stock: `${articulo.stock}`,
costo: `${articulo.costo}`,
coeficiente: `${articulo.coeficiente}`,
codigo: `${articulo.codigo}`
});
}
我遇到的问题: 当我运行它并使用 fetch Post 方法发布对象时,我在服务器上得到了很好的结果,我可以读取和修改它。但是当我使用相同的对象从服务器发送响应时,我无法在客户端上打开它。我尝试了与客户端相同的方法,但通过 Imsomnia,服务器发送了我在其上发布的相同对象。在客户端上,我得到相同的对象,具有相同的属性,但除了数字之外,值始终是“未定义的”。 我已经在这个问题上停留了四天,无法继续解决这个问题。提前致谢。
编辑:在这里我添加了在使用 console.log 获取之前和之后检查对象的方式
之前:
codigo: 12345678
coeficiente: "1.4"
costo: "425"
nombre: "Perro"
proveedor: "Whiskas"
rubro: "Alimento"
stock: "3"
之后:
codigo: "87654321"
coeficiente: "undefined"
costo: "undefined"
nombre: "undefined"
proveedor: "undefined"
rubro: "undefined"
stock: "undefined"
console.log(typeof req.body, req.body) 服务器端: 对象 { codigoArticulo: 87654321 }
【问题讨论】:
-
console.log(articulo);长什么样子? -
我将编辑并添加它
-
我的意思是当它是
req.body时,它在节点控制台中是什么样子的 -
请将
console.log(typeof req.body, req.body)的结果也发布到服务器上。我敢打赌,它不是一个对象。 JSON 是如何在服务器上解析的?如果您使用的是标准库,则需要从客户端发送适当的内容类型请求标头以及数据。 -
是的,你是对的,就是这样。在任何帖子中,我记得我说根本不需要,所以我从来没有说过。泰
标签: javascript post fetch-api