具有幻像的节点未指定默认引擎

时间:2015-09-23 13:06:32

标签: javascript node.js phantomjs

我有以下节点代码:

    var express = require('express');
var app = module.exports = express();
var phantom = require('node-phantom');

    app.use('/', function (req, res) {
        if (typeof(req.query._escaped_fragment_) !== "undefined") {
            phantom.create(function (err, ph) {
                return ph.createPage(function (err, page) {
                    return page.open("https://example.com/#!" + req.query._escaped_fragment_, function (status) {
                        return page.evaluate((function () {
                            return document.getElementsByTagName('html')[0].innerHTML;
                        }), function (err, result) {
                            res.send(result);
                            return ph.exit();
                        });
                    });
                });
            });
        } else
            res.render('index');
    });

    app.listen(3500);
    console.log('Magic happens on port ' + 3500);

只要我尝试访问我的域名,就会发生这种情况。但是,当我去那里时,我得到以下错误:

Error: No default engine was specified and no extension was provided.

谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:1)

Express正在尝试调用渲染,但您没有指定要使用的视图引擎。这就是错误是什么

如果您使用的是jade,请在调用app

后添加此配置
//change path to fit your use case of course
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');

如果您只是尝试发送静态html文件,请改用res.sendFile()

res.sendFile('/path/to/index.html')