如何将变量从nodejs文件发送到ejs文件

时间:2019-10-14 19:00:34

标签: html node.js express

console.log("current value:::", obj.getVar());
// current value::: undefined <-- Why undefined??
// expected value: 123456
    var express = require('express');
    var app = express();
    app.use("/", function(request, response){
      var MongoClient = require('mongodb').MongoClient;
    var url = "mongodb://localhost:27017/";
    MongoClient.connect(url, function(err, db) {
      if (err) throw err;
      var dbo = db.db("Test");
      dbo.collection("users").find({}, { "name":"John" }).toArray(function(err, result) {
        if (err) throw err;
        console.log(result);
        // res.sendFile(__dirname + "/views/index.ejs");

        db.close();
      });
    });
    });
    app.listen(3000, function () {
      console.log('Example app listening on port 3000!');
    });

我有2个文件,我想使用另一个文件中的一个变量。如何在 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script src="./index.js"></script> <title>Document</title> </head> <body> <h1 id="result"><%=result%></h1> </body> </html> 中将变量result从nodejs文件发送到ejs文件?

1 个答案:

答案 0 :(得分:0)

为此,您必须使用express res.render() 根据文档

  

res.render(view [,locals] [,callback])   渲染视图,并将渲染的HTML字符串发送到客户端。可选参数:   locals,一个对象,其属性定义视图的局部变量。

您应该使用类似

  res.render('index',{result});

然后,您现在就可以访问在index.ejs文件中发送的值,但是我建议您在应用程序中明确声明您正在使用ejs < / strong>,这样您就不必像以前一样不必在代码结束时进行重新声明的工作 在此代码var app = express()之后的顶部 你可以说

app.set("view engine", "ejs");