Home>Article>Web Front-end> A brief analysis of res.send() and res.end() in the node Express framework

A brief analysis of res.send() and res.end() in the node Express framework

青灯夜游
青灯夜游 forward
2022-01-21 18:57:02 2019browse

This article will talk aboutnodeExpress framework and learn about res.send() and res.end() in Express. I hope it will be helpful to everyone!

A brief analysis of res.send() and res.end() in the node Express framework

In the server-side code usingNode.js, if you are using the Express framework, then for a request, There are often two ways to respond:

// 方法1 app.get("/end", (req, res, next) =>{ res.end(xxx); }); // 方法2 app.get("/send", (req, res, next) =>{ res.send(xxx); });

So what is the difference between these two ways? What are their respective application scenarios? This is what I need to make clear today.

Express res.end()

Definition

It can end quickly without requiring any data response.

This method actually comes from Node core, specifically theresponse.end()method ofhttp.ServerResponse.Use:

A brief analysis of res.send() and res.end() in the node Express framework

##Syntax

res.end([data[, encoding]][, callback])

Parameter analysis:

    data |
  • encoding
  • callback

##In-depthIf you pass an object into the

res.end()

method, an error will occur:

A brief analysis of res.send() and res.end() in the node Express frameworkExpress's res.send()

DefinitionSends an HTTP response message to the requesting client.

Syntax

res.send([body[,statusCode]])
The body parameter can be Buffer, Object, String, Boolean or Array.

Go deeperThrough code debugging, we can find that Express’s

res.send()

method is ultimately called Also theresponse.end()method ofhttp.ServerResponse.Use:

// 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; };
Comparison

Same pointsThe similarities between Express's res.end() and res.send() methods:

    Both of them eventually return to
  • The

    response.end()method of http.ServerResponse.Use.

  • Both will end the current response process.

DifferencesThe differences between Express’s res.end() and res.send() methods:

    The former can only send string or Buffer type, while the latter can send any type of data.
  • From a semantic point of view, the former is more suitable for scenarios without any response data, while the latter is more suitable for scenarios with response data.
  • Summary

When using the res.end() and res.send() methods of Express, it is generally recommended to use

res.send()

method, so you don’t need to care about the format of the response data, because Express processes the data internally.~This article is over, thank you for reading!

For more node-related knowledge, please visit:

nodejs tutorial

! !

The above is the detailed content of A brief analysis of res.send() and res.end() in the node Express framework. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:juejin.cn. If there is any infringement, please contact admin@php.cn delete