Node.js 面试题
目录

请解释如何在 Express 中发送 JSON 响应?

· 约 3 分钟读完 · 第 280 / 377 章

推荐答案

在 Express 中发送 JSON 响应非常简单,可以使用 res.json() 方法。这个方法会自动将 JavaScript 对象转换为 JSON 格式,并设置适当的 Content-Type 头为 application/json。

在上面的代码中,当客户端访问 /api/data 路由时,服务器会返回一个 JSON 响应,内容为 { "message": "Hello, World!", "status": "success" }。

本题详细解读

1. res.json() 方法的作用

res.json() 是 Express 提供的一个便捷方法,用于发送 JSON 响应。它会自动将传入的 JavaScript 对象或数组转换为 JSON 字符串,并设置响应头的 Content-Type 为 application/json。

2. 与 res.send() 的区别

虽然 res.send() 也可以发送 JSON 响应,但它不会自动设置 Content-Type 头。因此,使用 res.json() 是更推荐的方式,因为它确保了响应的内容类型是正确的。

3. 处理复杂数据结构

res.json() 不仅可以处理简单的对象,还可以处理复杂的嵌套对象和数组。Express 会自动将这些数据结构转换为 JSON 格式。

4. 错误处理

如果 res.json() 方法传入的数据无法转换为 JSON 格式(例如,包含循环引用),Express 会抛出一个错误。因此,在处理复杂数据结构时,确保数据是可序列化的。

5. 设置状态码

你还可以在发送 JSON 响应的同时设置 HTTP 状态码:

在这个例子中,服务器会返回一个 404 状态码,并附带一个 JSON 响应 { "error": "Resource not found" }。