我是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;
答案 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模块。