为什么我的swig模板不能在我的MEAN web应用程序中渲染?
我正在学习与Swig模板一起的MEAN堆栈 。 我从头开始编写代码,因为我尝试了一个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
我将不胜感激任何帮助解决这个问题,以帮助我前进。 提前致谢。
我认为这是在routes.js中的违规行:
res.send('index.html');
res.send()
只是将文件的内容发送回HTTP响应中。
要渲染模板并将渲染结果发送回来,您需要res.render()
:
res.render('index.html')