我是expressjs的新手。我在其中创建了这个应用程序,当我通过POSTMAN传递JSON格式的数据时,它会返回数据。很好,但是当我在请求正文中以javascript对象的形式发送数据时,它就不能工作了,即正文为空。
代码:
var express= require('express')
var eApp= express();
eApp.use(express.json());
var collection= [{id: 1, name:'Hunain1'},
{id: 2, name:'Hunain2'},
{id: 3, name:'Hunain4'}
];
eApp.post('/api/hunain/', (req, res) =>
{
//var col= collection.find(col => col.id === parseInt(req.params.id));
if(req.body === "")
{
res.status(404).send("sorry, object is empty");
}
else
{
var collObj= {id: collection.length, name: req.body.name};
collection.push(collObj);
res.send(collObj);
}
});
//console.log('nodeapp4 has been accessed')
eApp.listen(100, () => console.log('nodeapp4 is listening to your requests'));
JSON格式的请求:
{
"id": 3,
"name": "Bose"
}
返回
{
"id": 4,
"name": "Bose"
}
这是我在postman中选择application/Json的时候。
但当我选择Javascript并将其写入body时:
{
id : "2",
name : "Bose"
}
然后它只返回id而不返回name,即body作为空发送,为什么?
发布于 2018-08-08 14:09:40
JSON是一种数据传输格式。它的唯一目的是紧凑、易于序列化/反序列化和独立于编程语言(有针对所有流行语言的JSON库)。
JavaScript对象是特定于JavaScript运行时的(它们不能被Python或C#服务器使用),并且对于数据传输是不安全的,因为它们可以包含行为(方法)。假设有人向你发送了这个恶意的JS对象:
{
firstName: (function () {
var fs = require('fs');
// proceed to delete all files in the directory...
})()
}
如果您在Node.js环境中,运行时解析此类恶意对象,您将面临巨大的安全威胁。
https://stackoverflow.com/questions/51745770
复制相似问题