Kraken.js 404和500中间件模板

时间:2015-11-27 16:16:37

标签: javascript node.js express middleware kraken.js

是否可以在kraken.js应用程序中为404和500错误使用不同的模板?下面是如何启用中间件并告诉它使用什么模板。对于我的应用程序,我需要使用不同的模板,具体取决于用户所在站点的哪个部分。

"fileNotFound": {
  "enabled": true,
  "priority": 130,
  "module": {
    "name": "kraken-js/middleware/404",
    "arguments": ["tamarin/errors/404"]
  }
},
"serverError": {
  "enabled": true,
  "priority": 140,
  "module": {
    "name": "kraken-js/middleware/500",
    "arguments": ["tamarin/errors/500"]
  }
},

我可以自己修改中间件以接受多个模板和某种逻辑来选择哪个模板,但我想知道是否有其他解决方案。

1 个答案:

答案 0 :(得分:1)

在kraken github repo上回答:https://github.com/krakenjs/kraken-js/issues/434

...

对于路径特定的404页面,您可以直接在您希望拥有不同404模板的路线上的kraken 404中间件。以下是我如何实现这一目标。

var _404  = require('kraken-js/middleware/404');

module.exports = function(router) {

    router.get("/:lang?/*", _404('tamarin/admin/404'),  function(req, res) {
...

这很好,因为我在config.json中配置的404模板将是默认模板,对于路由基础上我想要的任何东西都可以使用上述方法。