Express js渲染错误this.engine不是一个函数

时间:2017-04-12 05:39:48

标签: express render

我正在尝试使用express开发一个小API。只想拥有2个视图,在我的例子中,这意味着2个html文件。一个访问默认为" /"和另一个" / lessons",所以我们得到2个get控件和另一个控制所有其他get控件的控件。

*两个文件都在"视图"文件夹及其扩展名为:* .html

我访问" app.get没有问题(" /课程",功能..."事实上我知道我可以访问它,因为一个简单的&#34 ; console.log(..)"命令。问题是我在尝试渲染时遇到了下一个错误:

[TypeError:this.engine不是函数]。

你可以帮帮我吗?我无法理解问题出在哪里或我做错了什么。我相信它在渲染功能中与它的配置和lessons.html文件有关,因为index.html使用相同的方法没有问题。

var express = require('express');
var app = express();
var mod = require('./module');

app.use(express.static('public'));
app.use(express.static('views'));

var port = process.env.PORT || 8080;
app.listen(port, function() {
    console.log('Node.js listening on port ' + port);
});

app.get("/", function(req, res) {
    console.log("Passed through /");
    res.render('index.html');
});

app.get("/lessons", function(req, res) {
    console.log("passed through lessons");
    res.render('lessons.html', function(err, html) {
        if(err) {
            console.log(err);
        }
        res.send(html);
    });
    //I have tried to to use just: res.render('lessons.html');
});

app.get("*", function(req, res) {
    var usageReq = false;
    var urlPassed = req.url;
    urlPassed = urlPassed.substring(1, urlPassed.length); //remove first "/"

    var expected = mod.seeIfExpected(urlPassed); //returns url(if url) or num(if number) or na(if it doesn't match any)
    mod.processInfo(expected, urlPassed, function(answer) {
        if (answer.found == false && answer.jsonRes == true && answer.info != "inserted") {
            res.json({
                "error": answer.info   
            });
        } else {
            if (answer.jsonRes == true) {
                res.json({
                   "long_url": answer.url,
                   "short_url": answer.id
                });
            } else { // go to url
                var newUrl = "https://" + answer.url;
                res.redirect(newUrl);
            }
    }
});

});

0 个答案:

没有答案