我已经能够在strongloop的帮助下轻松设置基本的node.js api。我已经能够使用remoteMethods
添加自定义路由。但是,我为这些路线设置404
有点困惑。我有一个名为category
的模型mature
的路由,它接受一个参数(categorId
)并获取该类别下的所有游戏,其中布尔值设置为mature
的真值。端点网址为:http://localhost:3000/api/Categories/1004/games/mature
。如果我放置一个不存在的categorId
,它会中断。设置路由以处理404
错误的最佳方法是什么?例如,显示"no such category id"
。 Github REPO
公共/模型/ category.js
Category.mature = function(id, limit) {
var app = this.app;
var Games = app.models.Games;
Category.findById(id, {}, function(err, category){
if (err) return callback(err);
//set limit
if (limit && limit > 5){
limit = 5;
}else if(limit === undefined){
limit = 5;
}
Games.find({
"where": {
categoryId: id,
mature: true,
gameId: {gt: hashids.decode(after)}
},
"limit": limit
}, function(err, gameArray) {
if (err) return callback(err);
callback(null, gameArr);
});
)};
Category.remoteMethod(
'mature', {
accepts: [
{arg: 'id', type: 'number', required: true},
{arg: 'limit',type: 'number',required: false}
],
// mixing ':id' into the rest url allows $owner to be determined and used for access control
http: {
path: '/:id/games/mature',
verb: 'get'
},
returns: {
root: true,
type: 'object'
}
}
);
};