Express 响应返回 JSON 格式的数据

发布于 2022-08-18 23:21:50 字数 2186 浏览 253 评论 0

Express 的响应对象 有一个 json() 方法 res.json()函数 接受一个参数,一个对象 obj,将其序列化为 JSON,并在 HTTP 响应正文

const axios = require('axios');
const express = require('express');
const app = express();

app.get('*', function(req, res) {
  res.json({ answer: 42 });
});

const server = await app.listen(3000);

const response = await axios.get('http://localhost:3000');
response.data; // { answer: 42 }
response.headers['content-type']; // 'application/json; charset=utf-8'

Express 还设置了 content-type 标题 application/json。大多数 HTTP 客户端,如 Axios ,使用自动处理将 JSON 字符串转换为 JavaScript 对象 JSON.parse() 当内容类型为 application/json

res.json()用途 JSON.stringify() 在引擎盖下 将对象序列化为 JSON。 您可以配置 Express 传递给的参数 JSON.stringify() 使用 app.use(),例如要让 Express 漂亮地打印 JSON,您可以使用 app.set('json spaces', 2) 如下所示。

const axios = require('axios');
const express = require('express');
const app = express();

// Make Express pass '2' as the 3rd argument to `JSON.stringify()`
app.set('json spaces', 2);

app.get('*', function(req, res) {
  res.json({ answer: 42, hello: 'world' });
});

const server = await app.listen(3000);

const response = await axios.get('http://localhost:3000', {
  transformResponse: res => res // Disable automatic JSON parsing
});
// {
//   "answer": 42,
//   "hello": "world"
// }
response.data;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
21 人气
更多

推荐作者

留蓝

文章 0 评论 0

18790681156

文章 0 评论 0

zach7772

文章 0 评论 0

Wini

文章 0 评论 0

ayeshaaroy

文章 0 评论 0

初雪

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文