Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何对ejs多次使用res.render?_Node.js_Express_Render_Ejs - Fatal编程技术网

Node.js 如何对ejs多次使用res.render?

Node.js 如何对ejs多次使用res.render?,node.js,express,render,ejs,Node.js,Express,Render,Ejs,我试图在nodeJS应用程序中调用res.render两次,但每次调用时都会出现错误。有人知道我如何在应用程序中调用res.render两次而不切换文件吗?或者将其包含在所有一个res中,呈现或更改导演 var express = require("express"); var app = express(); app.set("view engine", "ejs"); app.get("/", function (req, res) { res.render("index", {

我试图在nodeJS应用程序中调用res.render两次,但每次调用时都会出现错误。有人知道我如何在应用程序中调用res.render两次而不切换文件吗?或者将其包含在所有一个res中,呈现或更改导演

var express = require("express");
var app = express();
app.set("view engine", "ejs");
app.get("/", function (req, res) {
    res.render("index", {
        data: "Hello, guys",
    });
    res.render("index", {
        name: "Hello, again",
    });
});

app.listen(10022, function () {
    console.log("server is up");
});

我知道上面的代码不起作用。我想知道如何在代码编写过程中的不同时间发送数据和名称。

我也看到了同样的问题,因为在处理从服务器收到的第一个json响应时,发生了多个异步http调用,我必须等待所有调用完成,然后才能呈现响应。我解决这个问题的方法是,我保留了一个计数器,记录我必须发出多少http请求,然后在此之后调用res.render。希望这有帮助

我不知道你要做什么。但是,如果您只想呈现带有“data”和“name”的“index.ejs”文件,您可以简单地将它们放在一起,如下所示

app.get("/", function (req, res) {
    res.render("index", {
        data: "Hello, guys",
        name: "Hello, again"
    });
});

你想做的事没有多大意义。当处理程序两次尝试发送响应头时,您应该会收到一个错误,这是错误的。你到底想达到什么目的?我知道上述方法行不通。我只是看看如何在代码编写过程中的不同时间发送数据和名称。这不是HTTP的工作方式。您应该发送2个HTTP请求以获得2个不同的响应。