【发布时间】:2014-07-03 22:32:13
【问题描述】:
我正在努力学习 the MEAN stack 和 Swig templates。我正在从头开始编码,因为我尝试了一个 MEAN 框架,但它生成了很多文件,而且对我来说太多了。
目前我的 Swig 模板 index.html 不呈现 HTML。这是我得到的输出:
{% include 'header.html' %}
<br>Welcome to my test website
正如我所期望的那样
This is coming from Header
<br>Welcome to my test website
为什么不渲染?
以下是我的文件夹结构:
--config
-config.js
--node_modules
-* //modules installed via npm link
--public
-header.html
-index.html
-package.json
-routes.js
-server.js
下面是每个文件的内容
config.js
var port = process.env.PORT || 8080;
module.exports = {
dburl: 'mongodb://localhost/test',
port: port,
templateEngine: 'swig'
}
header.html
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<p> This is coming from Header</p>
index.html
{% include 'header.html' %}
<p>Welcome to my test website</p>
</body>
package.json
{
"name": "test",
"version": "0.0.1",
"author": "Rukmaj Chandavar",
"dependencies": {
"express": "*",
"mongoose": "*",
"angular": "*",
"swig": "*",
"consolidate": "*"
}
}
routes.js
module.exports = function(app){
app.get('*',function(req, res){
res.send('index.html');
});
}
server.js
var express = require("express");
var app = express();
var mongoose = require("mongoose");
var config = require('./config/config');
var swig = require('swig');
var cons = require('consolidate');
mongoose.connect(config.dburl);
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/public');
app.engine('html', cons.swig);
app.set('view engine', 'html');
require('./routes') (app);
app.listen(config.port);
console.log('MeriDawat running on port ' + config.port)
以下是已安装节点模块的版本号
angular@1.2.18
consolidate@0.10.0
express@4.4.3
mongoose@3.8.12
passport@0.2.0
swig@1.3.2
如果能帮助我解决此问题以帮助我继续前进,我将不胜感激。提前致谢。
【问题讨论】:
-
你提到
mean init——你在用mean.io吗? -
不,我不在这个例子中,但是当我早些时候使用它时,它会生成很多对我来说太多的文件。所以我从头开始做一个简单的项目。
-
那么您使用的是什么 来提供
mean init命令? -
这个问题不是关于mean init,而是关于无法使用node 和express 渲染swig 模板。这只是一个背景信息,与 mean.io 没有任何关系。
-
啊,我明白了。我已经编辑了你的问题,希望能更清楚。
标签: node.js express swig-template