ExpressJS-将.json()与响应一起使用时会发生什么?

时间:2018-08-16 16:30:07

标签: json node.js express server

我当时正在使用ExpressJS制作服务器,而这件事确实困扰着我。在我的响应中使用.json()而不是.send()有什么用?根据Express的说法,.send()自动将JavaScript对象转换为JSON字符串,我们不需要使用stringify。然后为什么在响应中使用.json()。

app.get('/profile/:id', (req, res) => {
const {id} = req.params;
let found = false;
database.users.forEach(user => {
    if(user.id === id) {
        found = true;
        return res.json(user);
    }
})
if (found === false)
{
    res.status(400).json('not found');
}
})

这是res.json()应用的代码。

1 个答案:

答案 0 :(得分:0)

最后,res.json调用res.send,并且在传递对象或数组时它们都是相同的。

但是res.json方法也使用json replacerjson spaces设置。它们为您提供了更大的灵活性和更多选项来格式化json文件。 还res.json确保响应位于utf8字符集中。

为了更好地理解这些差异,建议您检查一下: Difference between res.send and res.json in Express.js