Kraken.js 404和500中间件模板

Kraken.js 404 and 500 middleware templates

本文关键字:中间件 js Kraken      更新时间:2023-09-26

是否可以在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"]
  }
},

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

在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模板将是默认模板,对于任何我想要的逐个路由的模板,都可以使用上面的方法。