关于我的背景:我暂时没有做过很多网页开发,而且最近才刚刚开始重新开始。我记得我曾经在PHP中使用静态页眉/页脚文件的日子,代码如下:
<html>
<head>
<title>Title</title>
</head>
<body>
<?php include("header.php") ?>
Body text here
<?php include("footer.php") ?>
</body>
</html>
我目前正在切换到我的后端节点(由于与此帖子无关的各种原因)。我还是很陌生,所以我想知道是否有一个简单的方法可以为我的前端提供静态页眉/页脚(包含导航栏等)。我尝试将 Bootstrap 用于我的前端框架。
我认为使用Jade或其他模板引擎可能是实现此目的的一种方式,尽管我不一定确定我是否还想使用Jade因为处理js和HTML很麻烦没有在混合中添加另一个伪语言/格式/模板。 所以我想知道是否有不使用模板引擎的解决方案。
这是我目前为app.js / web.js文件提供的内容:
var express = require('express')
var app = express()
var path = require('path')
var fs = require('fs');
var bodyparser = require('body-parser')
app.use(bodyparser.urlencoded({extended: false}))
app.use(express.static(path.join(__dirname)));
app.get('/submit', function(req,res) {
[functions omitted for brevity]
})
[other processes omitted for brevity]
app.listen(8080)
谢谢!
答案 0 :(得分:0)
我强烈建议您使用视图引擎。 Node不像PHP。 PHP脚本按顺序处理,呈现的输出作为响应发送。如果您要在节点中执行相同的方法,那么您将在JavaScript中构建一个字符串,然后将其发送给客户端。
app.get('/submit', function(req,res) {
var output = '<html>';
output += '<head>';
...
res.send(output);
});
现在假设您必须查询数据库:
app.get('/submit', function(req,res) {
var output = '<html>';
output += '<head>';
...
db.query(query, function(err, result) {
output += 'the result is ' + result;
...
res.send(output);
});
});
所以经验教训是,使用模板引擎,因为它们是为你构建html输出而设计的。从ejs开始,因为它将有更熟悉的php语法。