我正在尝试与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)


以下是已安装的节点模块的版本号

[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]


对于解决此问题的任何帮助,我将不胜感激,以帮助我前进。提前致谢。

最佳答案

我认为这是routes.js中的违规行:

res.send('index.html');


res.send()只是将文件的内容发送回HTTP响应中。

要渲染模板并将渲染结果发送回,您需要res.render()代替:

res.render('index.html')

关于node.js - 为什么我的Swig模板无法在MEAN Web应用程序中呈现?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24549626/

10-16 17:15