我有一个大问题,我在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])});
}
});
}
我使用了渲染并传递了值,但现在呢?我该如何访问它们?
贝斯茨
马丁
答案 0 :(得分:1)
如果您希望在profile.html
和user.html
文件中包含动态内容(例如数据库条目),则需要某种类型的视图引擎。当然你也可以在JS中编译一个巨大的html字符串并将其发送到客户端,如下所示:
res.send('<html><head>...</head><body>' + user.name + '</body></html');
但这绝对没有意义。
因为您被允许使用Node-并且通过扩展Express,您还应该被允许使用Jade(已经重命名为Pug),因为这只是Express的视图引擎,它是也写在NodeJS中。
所以我的猜测是你的老师要么不理解Jade的作用,要么他们希望你使用普通的NodeJS而没有像Express这样的东西。