如何将变量从node.js传递给html

时间:2018-03-31 16:57:16

标签: javascript html node.js handlebars.js

我是node.js开发者的新手

我目前正在编写一个程序结构如下的程序:

view
 |
 |--- booking.handlebars (HTML program)
 |
routes
 |
 |--- booking.js (node.js JavaScript program)
 |

当用户访问"仪表板"页面," booking.js"将连接到mongodb以检索所有"预订"来自数据库" Booking"的记录。然后,我的目标是通过所提取的"预订"反对" booking.handlebars" HTML文件。

然而,我无法实现这一目标。

我已经考虑了许多替代方案,包括使用全局变量从stackoverflow搜索线程;生成JSON文件然后再读取JSON文件等。但它似乎无法正常工作。

我想请求您如何将所有对象值从JavaScript程序传递到HTML。

以下是我的代码:

booking.handlebars(HTML程序)

<div>
    <div>
        <table>
            <tbody>
                <tr>
                    <td>{{user.username}}</td>
                    <td>{{booking}}</td>
                    <td>{{req.booking}}</td>
                    <td>{{bookingRecord}}</td>
                    <td>{{bookings.booking}}</td>

                </tr>
            </tbody>
        </table>
    </div>
</div>

booking.js(node.js JavaScript程序)

var express = require('express');
var router = express.Router();
var bookingRecord = null;


router.get('/dashboard', function(req, res){
    res.render('dashboard');
});


router.post('/dashboard',
  function(req, res) {
    var MongoClient = require('mongodb').MongoClient;
    var url = "mongodb://localhost:27017/";

    MongoClient.connect(url, function(err, db) {
      if (err) throw err;
      var dbo = db.db("booking");
      dbo.collection("bookings").find().toArray(function(err, booking) {
        if (err) throw err;
        console.log(booking);
        bookingRecord = booking;
        db.close();
      });
    });

    res.redirect('/users/dashboard');
  });


module.exports = router;

1 个答案:

答案 0 :(得分:0)

如果你想将node.js的数据发送到html,你应该使用ejs模块。为了从数据库中获取结果,你应该使用mongoose模块。我理解你;但我在手机上写,我不能写代码。

如果您可以通过mongoose或没有猫鼬获得预订结果,您可以使用express发送到这样的html。

使用带有express.js的ejs文件

app.engine('.ejs', ejs.__express);app.set('views',__dirname+'/views');

发送至html:

res.render('./dashboard.ejs',{booking:booking})

在dashboard.ejs中:

<span><%-booking.username%></span>//booking is what you sent with res.render  

注意1创建viesw文件夹并在views文件夹中创建dashboard.ejs。 注意2安装ejs和mongoose模块。