【发布时间】:2014-03-22 01:33:57
【问题描述】:
我对 Sails.js (0.9.13) 和一般的节点样式编程非常陌生。任何帮助表示赞赏。下面的示例来自 UserController:
module.exports = {
save: function (req, res) {
var u = {
firstName: req.param('firstName'),
lastName: req.param('lastName'),
email: req.param('email'),
password: req.param('password'),
};
User.create(u).done(function(err,user){
if(err) {
if( err.code == 'ER_DUP_ENTRY' ) {
return new Error('Duplicate: email address already in use.','UserController');
}
console.log( err );
return;
}
console.log( user );
});
}
}
所以我试图捕获“ER_DUP_ENTRY”错误代码并返回自定义错误消息,但我没有写的那么幸运。我到底应该怎么做?
【问题讨论】:
-
这段代码是在什么条件下运行的?它是响应常规的 HTML 表单帖子、AJAX POST、来自 API 使用者的请求还是其他什么?这将决定您应该发送的响应类型。
-
另外,我希望你不是真的从 Sails 0.9.0 开始。最新的稳定版本是 0.9.13。是时候升级了!
-
@ScottGress 是的,最新的 Sails 0.9.13。这是在用户控制器中运行的,作为对直接表单帖子的响应。我的问题实际上是关于如何检测和/或拦截创建函数的 ER_DUP_ENTRY 以便我可以打包适当的回复。然后,是的,所述响应的包装需要适合调用类型。
-
@RSAdmin 你知道在 User.findOrCreate() 中是否可以访问 'ER_DUP_ENTRY' 我一直得到一个 ER_UKNOWN 但在进一步阅读它时清除它是由于重复的条目编辑:或者我拥有这一切错了,ER_DUP_ENTRY 来自sails-mysql 而不是sails-memory...
标签: javascript node.js error-handling sails.js