我正在寻找一种方法来使用sails.js框架提供的默认404错误。
文档在这里http://sailsjs.org/#!documentation/config.404,但我想知道如何从另一个控制器调用404方法。
当然我可以使用doc中的代码,但我更愿意使用专用的框架方法。
答案 0 :(得分:10)
res.notFound()
应该为版本0.10做技巧。
查看您的api/responses/
文件夹,它包含sails的默认错误响应帮助程序,并允许您通过在那里保存文件来提出自己的响应类型。
默认包含:
/api/responses
badRequest.js - 400 - res.badRequest()
notFound.js - 404 - res.notFound()
forbidden.js - 403 - res.forbidden()
serverError.js - 500 - res.serverError()
滚动自己:
/api/responses
notAcceptable.js - res.notAcceptable();
示例(修改后的api / responses / notFound.js):
module.exports = function notAcceptable() {
var req = this.req;
var res = this.res;
var viewFilePath = 405;
var statusCode = 405;
var result = {
status: statusCode
};
if (req.wantsJSON) {
return res.json(result, result.status);
}
res.status(result.status);
res.render(viewFilePath, function(err) {
if (err) {
return res.json(result, result.status);
}
res.render(viewFilePath);
});
};
答案 1 :(得分:1)
文档中描述的pageNotFound
方法只是404响应行为的默认实现,是sails配置的一部分。您可以在 config / 404.js 文件中看到它。
如果你想从控制器中调用它,你可以像引用任何其他sails配置变量一样引用它:
yourControllerAction: function(req, res) {
......
// if content not found, calling 404 method
sails.config[404](req, res);
// else
res.send('Some content');
},