Home > Web Front-end > JS Tutorial > 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

青灯夜游
Release: 2022-01-27 18:17:28
forward
2176 people have browsed it

This article will talk about node Express 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 using Node.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);
});
Copy after login

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 the response.end() method of http.ServerResponse.Use:

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

##Syntax

res.end([data[, encoding]][, callback])
Copy after login

Parameter analysis:

    data |
  • encoding
  • callback

##In-depth If 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]])
Copy after login
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 the response.end() method of http.ServerResponse.Use: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">// node_modules/express/lib/response.js res.send = function send(body) { var chunk = body; var encoding; …… if (req.method === &amp;#39;HEAD&amp;#39;) { // skip body for HEAD this.end(); } else { // respond this.end(chunk, encoding); } return this; };</pre><div class="contentsignin">Copy after login</div></div>Comparison<h2 data-id="heading-9"></h2> <p>Same points<strong><span style="font-size: 16px;"></span></strong>The similarities between Express's res.end() and res.send() methods: </p> <p></p> <ul style="list-style-type: disc;">Both of them eventually return to <li> The <p>response.end()<code> 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!

    Related labels:
    source:juejin.cn
    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Popular Tutorials
    More>
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template