Как отправить переменную из файла nodejs в файл ejs - PullRequest
1 голос
/ 14 октября 2019
    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!');
    });
    <!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>

У меня есть 2 файла, и я хочу использовать переменную из одного файла в другом. Как я могу отправить переменную result из моего файла nodejs в мой файл ejs, в <h1 id="result"><%=result%></h1>?

1 Ответ

1 голос
/ 15 октября 2019

Для этого вы должны использовать экспресс res.render () в соответствии с документами

res.render (view [, localals] [, callback]) Рендерит представление и отправляетвизуализированная HTML-строка для клиента. Необязательные параметры: locals, объект, свойства которого определяют локальные переменные для представления.

Вы должны использовать что-то вроде этого

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

, тогда теперь вы сможете получить доступ к этому значениювы отправили файл index.ejs, однако я бы посоветовал вам явно объявить в своем приложении , что вы используете ejs , чтобы вы не имеличтобы пройти через попытку восстановления ejs в конце вашего кода, как прежде в верхней части после этого кода var app = express() вы могли бы сказать

app.set("view engine", "ejs");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...