Kraken.js 灰尘视图引擎

Kraken.js dust view engine

我正在使用 Kraken.js 并将 Dust 作为默认视图引擎。我收到此错误:

No default engine was specified and no extension was provided. at new View (/home/zhiro/Desktop/kraken/krakil/node_modules/express/lib/view.js:62:11) at EventEmitter.render (/home/zhiro/Desktop/kraken/krakil/node_modules/express/lib/application.js:569:12) at ServerResponse.render (/home/zhiro/Desktop/kraken/krakil/node_modules/express/lib/response.js:961:7) at /home/zhiro/Desktop/kraken/krakil/controllers/index.js:14:13 at Layer.handle [as handle_request] (/home/zhiro/Desktop/kraken/krakil/node_modules/express/lib/router/layer.js:95:5) at next (/home/zhiro/Desktop/kraken/krakil/node_modules/express/lib/router/route.js:131:13) at Route.dispatch (/home/zhiro/Desktop/kraken/krakil/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/home/zhiro/Desktop/kraken/krakil/node_modules/express/lib/router/layer.js:95:5) at /home/zhiro/Desktop/kraken/krakil/node_modules/express/lib/router/index.js:277:22 at Function.process_params (/home/zhiro/Desktop/kraken/krakil/node_modules/express/lib/router/index.js:330:12)

我在调用 res.render 时看到这个错误。

'use strict';

var IndexModel = require('../models/index');

module.exports = function (router) {
    var model = new IndexModel();
    router.get('/', function (req, res) {
        res.render('index');
    });
};

默认情况下,Kraken 不配置默认视图引擎。如果没有为该文件扩展名明确定义的渲染器,视图引擎会告诉 Express 它应该如何尝试渲染文件。

当您使用 yo kraken 配置新项目时,其中一个问题是您希望默认视图引擎是什么,但听起来您在该步骤中选择了 None .

要设置默认视图引擎,您只需在实例化 Kraken 时将其作为配置的一部分 object 传递。您可以在 Configuration-Based Express Settings:

标题下的 Kraken README 中阅读相关内容

Set the view engine property to the one of the view engines property names (see the section View Engine Configuration) to enable it for template rendering.

{
  "express": {
    [...]
    "view engine": null, // set this to "dust"
    [...]
  }
}