我正在使用feathers.js v3.0.5
作为我的休息解决方案,使用feathers-cli
创建了应用程序
对于每个错误代码,框架都有一个特定的 html 模板,包括羽毛徽标和样式:
-
401 Not Authenticated
-
403 Forbidden
-
404 Not Found
有没有办法自定义错误的默认模板?
我想对于索引.html,我只能从文件夹中修改index.html
/public/
但对于错误,我没有找到任何明智的建议。
您可以按照 Feathers 错误处理程序文档中的说明设置自定义 HTML 页面:
const { errorHandler } = require('@feathersjs/express');
const app = feathers();
// Just like Express your error middleware needs to be
// set up last in your middleware chain.
app.use(errorHandler({
html: function(error, req, res, next) {
// render your error view with the error object
res.render('error', error);
}
}));
// Set paths to custom HTML pages
app.use(errorHandler({
html: {
404: 'path/to/notFound.html',
500: 'there/will/be/robots.html'
}
}));
我认为Feathers应用程序不应该负责呈现错误页面。正如你所说,Feathers是你的REST/WebSocket平台。大多数人将其用作前端应用程序的纯数据后端,甚至用作完整 Express 应用程序的 API 服务器。
在任何一种情况下,您都应该在代码中处理 404 错误(例如(并将重定向/显示到您的 404"UI"。
由于您没有过多地指定有关您的应用程序、设置等的信息,因此我无法提供任何细节。希望这有帮助。
另一个好的解决方案是关闭 html 错误。这将返回 json 响应,这些响应更容易被基于 API 的软件使用者解释。
例
app.use(errorHandler({
html: false
}));