javascript - res.json(),它在哪里响应?
问题描述
我是路由部分的新手,并尝试了解这段代码发生了什么,特别是 res.json
router.get('/', function(req, res){
db.find()
.then(function(todos){
res.json(todos);
}
})
我需要知道这个 res.json 在哪里响应,是在他们需要时响应前端还是用于数据库部分?当我们尝试使用 find() 从数据库中查找所有信息,然后将其转换为 json 时,它会去哪里?
当我们尝试使用 create() 创建新的 Todo 时,POST 路由也是如此,我们再次使用 res.json(),这里我们尝试将信息发布到服务器,那么为什么我们在这里使用 res?
解决方案
res.json([body])发送 JSON 响应。此方法发送一个响应(具有正确的内容类型),该响应是使用 JSON.stringify() 转换为 JSON 字符串的参数。
该参数可以是任何 JSON 类型,包括对象、数组、字符串、布尔值或数字,您还可以使用它将其他值转换为 JSON,例如 null 和 undefined(尽管这些在技术上不是有效的 JSON)。
res.json(null); res.json({ user: 'tobi' }); res.status(500).json({ error: 'message' });
来源: 来自 expressjs.com 的 res.json([body]) API
根据您的问题,这对前端开发人员很有帮助,因为响应来自 GET 请求的 JSON 对象。
请注意,create() 方法中的 res.json 用于将新创建的 todo 作为 JSON 返回,以简化前端开发人员的工作。
在高级主题中,您将面临模式验证,它验证来自 POST 请求的发布数据,但该数据应该是 JSON,以便能够使用模型模式对其进行验证。
推荐阅读
- python - 如何在每次按下 tkinter 按钮时打开 PIL 图像?
- colors - 创建彩色 .obj 文件(带颜色的点云)
- android - 彩色 FCM 通知图标
- python - Python 2 到 3 “TypeError:需要一个类似字节的对象,而不是 'str'”
- python - 我不知道代码“[:, row:row]”的含义
- amazon-web-services - 如何设置 lightsail VPC 对等互连?
- docker - 优化图像时 gulp imagimine 插件 throwinf 错误
- mongodb - 为什么我不能使用 redact - mongodb 修剪嵌套数组的元素?
- ionic-framework - 为什么我的画布并不总是显示绘制的图像?
- javascript - 使用ajax发布多个输入