当前位置: 首页 > 知识库问答 >
问题:

Express.js中res.send和res.json之间的区别

袁骏祥
2023-03-14

res.sendres.json之间的实际区别是什么,因为两者似乎都执行相同的响应客户端的操作。

共有1个答案

子车灿
2023-03-14

当传递对象或数组时,这些方法是相同的,但是res.json()还将转换非对象,如nullundefined,它们不是有效的JSON。

该方法还使用JSON ReplacerJSON Spaces应用程序设置,因此可以使用更多选项格式化JSON。这些选项的设置如下所示:

app.set('json spaces', 2);
app.set('json replacer', replacer);

并传递给json.stringify(),如下所示:

JSON.stringify(value, replacer, spacing);
// value: object to format
// replacer: rules for transforming properties encountered during stringifying
// spacing: the number of spaces for indentation
var app = this.app;
var replacer = app.get('json replacer');
var spaces = app.get('json spaces');
var body = JSON.stringify(obj, replacer, spaces);

该方法最终作为res.send():

this.charset = this.charset || 'utf-8';
this.get('Content-Type') || this.set('Content-Type', 'application/json');

return this.send(body);
 类似资料:
  • 问题内容: 两者之间的实际区别是什么,并且两者似乎都执行相同的响应客户端的操作。 问题答案: 传递对象或数组时,方法是相同的,但也会转换非对象,例如和,它们是无效的JSON。 该方法还使用和应用程序设置,因此您可以使用更多选项来格式化JSON。这些选项设置如下: 并传递给一个这样的: 这是send方法没有的方法中的代码: 该方法最终以a 结尾:

  • 问题内容: 我是表示和node.js的新手,我不知道app.use和app.get之间的区别。似乎您可以同时使用它们来发送信息。例如: 似乎与此相同: 问题答案: 用于将中间件绑定到您的应用程序。它是一个“ 安装 ”或“ 前缀 ”路径,并限制中间件仅适用于以它 开头的 任何请求的路径。它甚至可以用于嵌入另一个应用程序: 通过指定为“ mount ”路径,将响应以开头的所有路径,并且所有路径均与使用

  • 问题内容: 我有一个相当简单的Express.js应用程序,带有一个登录组件,如果登录失败,我想尽早退出。我看到有迹象表明该应用程序没有执行此操作,也没有找到明确的答案来表明调用是否停止任何进一步的处理。这是我现在的代码: 如果我正确地阅读了源代码,它 应该 结束请求(终止进一步的处理),但是我是Node的新手,所以我还没有准备好相信我认为的内容。归根结底,我想我主要是在寻找更可靠的资源来获得最终

  • 问题内容: 我是一个初学者,我试图理解之间的差异和? 问题答案: 重新发送 res.send仅在Express js中。 为简单的非流式响应执行许多有用的任务。 能够自动分配Content-Length HTTP响应标头字段。 能够提供自动的HEAD和HTTP缓存新鲜度支持。 实际说明 只能被调用一次,因为它等同于+ 例 有关更多详细信息expressjs.com/en/api.html 重新写入

  • 问题内容: 我有两个问题,可能需要一些帮助来理解它们。 和之间有什么区别?我知道这 意味着在单独的外壳中运行命令,然后将其传递给变量。有人可以帮助我理解这一点吗?如果我错了,请纠正我。 如果我们可以使用并且效果很好,那我为什么不能使用它呢?两者的执行周期有何不同? 问题答案: 语法是令牌级别的,因此美元符号的含义取决于其所在的令牌。表达式是现代代名词,代表命令替换;这意味着运行并将其输出放在此处。

  • 问题内容: 我对和感到困惑。我有两本PHP书。一个说它们是相同的,但是另一个说它们是不同的。我以为他们也一样。 他们不一样吗? 问题答案: 是按位与。请参见按位运算符。假设您这样做: 是逻辑AND。请参阅逻辑运算符。考虑一下这个真值表: