Cet article vous permettra de parler du framework node Express et d'en apprendre davantage sur res.send() et res.end() dans Express. J'espère qu'il sera utile à tout le monde !
Dans le code côté serveur utilisant Node.js
Node.js
的服务端代码中,如果使用的是 Express 框架,那么对于一个请求,常常会有两种响应方式:
// 方法1 app.get("/end", (req, res, next) =>{ res.end(xxx); }); // 方法2 app.get("/send", (req, res, next) =>{ res.send(xxx); });
那么这两种方式究竟有何区别?各自的应用场景分别是什么?这是我今天需要讲清楚的。
定义
它可以在不需要任何数据的情况下快速结束响应。
这个方法实际上来自 Node 核心,具体来说是 http.ServerResponse.Use
的 response.end()
方法:
语法
res.end([data[, encoding]][, callback])
参数解析:
深入
如果给 res.end()
方法传入一个对象,会发生报错:
定义
向请求客户端发送 HTTP 响应消息。
语法
res.send([body[,statusCode]])
body 参数可以是 Buffer、Object、String、Boolean 或 Array。
深入
通过代码调试,我们可以发现,Express 的 res.send()
方法最终调用的也是 http.ServerResponse.Use
的 response.end()
方法:
// node_modules/express/lib/response.js res.send = function send(body) { var chunk = body; var encoding; …… if (req.method === 'HEAD') { // skip body for HEAD this.end(); } else { // respond this.end(chunk, encoding); } return this; };
相同点
Express 的 res.end() 和 res.send() 方法的相同点:
二者最终都是回归到 http.ServerResponse.Use
的 response.end()
方法。
二者都会结束当前响应流程。
不同点
Express 的 res.end() 和 res.send() 方法的不同点:
前者只能发送 string 或者 Buffer 类型,后者可以发送任何类型数据。
从语义来看,前者更适合没有任何响应数据的场景,而后者更适合于存在响应数据的场景。
Express 的 res.end() 和 res.send() 方法使用上,一般建议使用 res.send()
, si le framework Express est utilisé, il y a souvent deux méthodes de réponse pour une requête :
Alors ceci Quelle est la différence entre les deux méthodes ? Quels sont leurs scénarios d’application respectifs ? C’est ce que je dois préciser aujourd’hui.
Définition Il peut mettre fin à la réponse rapidement sans nécessiter aucune donnée.
🎜Cette méthode provient en fait du noyau Node, en particulier de la méthoderesponse.end()
de http.ServerResponse.Use
: 🎜🎜🎜🎜Syntaxe🎜rrreee🎜Analyse des paramètres : 🎜res.end()
passe dans un objet, une erreur se produira : 🎜🎜🎜res.send()
d'Express > La méthode appelle finalement la méthode response.end()
de http.ServerResponse.Use
: 🎜rrreeeresponse.end()http.ServerResponse.Use
/code > méthode. 🎜 La méthode res.send()
est suffisante, vous n'avez donc pas besoin de vous soucier du format des données de réponse, car Express traite les données en interne. 🎜🎜~Cet article est terminé, merci d'avoir lu ! 🎜🎜Pour plus de connaissances sur les nœuds, veuillez visiter : 🎜tutoriel Nodejs🎜 ! ! 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!