Sails ORM(水线)回调中的自定义错误
Posted
技术标签:
【中文标题】Sails ORM(水线)回调中的自定义错误【英文标题】:Custom Error in Sails ORM (Waterline) callback 【发布时间】:2015-11-21 19:36:42 【问题描述】:在我的用户模型中,我有这样的东西:
register: function(data, next)
User.findOne(email:data.email).exec(function findOneUserCB(err, user)
if (!err && user)
return next(new Error('Email already exist.'));
// other things
);
我基本上是在找到用户时尝试返回自定义错误,但水线没有任何其他错误。
但这不起作用,sails 抱怨说TypeError: Cannot call method 'toString' of undefined
。
所以我尝试模拟水线错误:
//...
var error =
code: 'E_UNIQUE',
details: 'Invalid',
model: 'user',
invalidAttributes:
hase: []
,
status: 400
return next(error);
//...
这行得通,但感觉很hackish。从查询回调中传递自定义错误不是更好的方法吗?我找不到有关此主题的任何文档
【问题讨论】:
【参考方案1】:你可以试试这样的
register: function(data, next)
User.findOne(email:data.email).exec(function findOneUserCB(err, user)
if(user)
var alreadyExists = new Error();
alreadyExists.message = require('util').format('User already exists');
alreadyExists.status = 400;
cb(alreadyExists);
// other things
);
【讨论】:
以上是关于Sails ORM(水线)回调中的自定义错误的主要内容,如果未能解决你的问题,请参考以下文章