ExpressJS-在响应中使用.json()时会发生什么?

ExpressJS-在响应中使用.json()时会发生什么?,json,node.js,express,server,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(u

我用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()应用的代码。

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

但是
res.json
方法也使用
json替换器
json空格
设置。它们为格式化json文件提供了更多的灵活性和选项。 另外,
res.json
确保响应为utf8字符集

为了更好地理解这些差异,我建议您检查: