如何将html文件和我的数据库请求结果发送到我的页面(Express)?

时间:2016-12-15 13:14:33

标签: html node.js express

我有一个大问题,我在Express中用玉写了一个几乎完整的网页。但现在我的讲师告诉我,玉不允许使用。我们需要使用php,node或/和html代码完成所有工作,但我不知道如何在没有引擎的情况下将数据库条目发送到我的网页。

这是一个例子

function userPage(req, res, id) {
var url = req.url;
if(url.indexOf("id=")> -1){     
    connection.query('SELECT * FROM photageDB.users WHERE ID=?; SELECT * FROM photageDB.users INNER JOIN photageDB.movie ON (photageDB.movie.userID = photageDB.users.ID) WHERE photagedb.users.ID=?;', [id, id], function(err, rows, fields) {
        if (err)  { throw err; }    
        var data = rows[0];
        var movies = rows[1];
        if (req.cookies.userID == id || req.cookies.isAdmin == 1) {
            res.sendFile(path.join(__dirname, "../views" , "/profile.html"));
            //res.render("profile", {data : JSON.stringify(rows[0]), movies : JSON.stringify(rows[1])});
        } else {
            res.sendFile(path.join(__dirname, "../views" , "/user.html"));
            //res.render("user", {data : JSON.stringify(rows[0]), movies : JSON.stringify(rows[1])});
        }
    });
}

我使用了渲染并传递了值,但现在呢?我该如何访问它们?

贝斯茨

马丁

1 个答案:

答案 0 :(得分:1)

如果您希望在profile.htmluser.html文件中包含动态内容(例如数据库条目),则需要某种类型的视图引擎。当然你也可以在JS中编译一个巨大的html字符串并将其发送到客户端,如下所示:

res.send('<html><head>...</head><body>' + user.name + '</body></html');

但这绝对没有意义。

因为您被允许使用Node-并且通过扩展Express,您还应该被允许使用Jade(已经重命名为Pug),因为这只是Express的视图引擎,它是也写在NodeJS中。

所以我的猜测是你的老师要么不理解Jade的作用,要么他们希望你使用普通的NodeJS而没有像Express这样的东西。