为什么我的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')