dao 层 daoUser.js
/**
* 用户注册
* @param params
* @param callback
*/
exports.insert = function (params, callback) {
let post = Object.assign(params, {date: new Date()});
pool.query('INSERT INTO user SET ?', post, function (error, results, fields) {
if (error) throw error;
for (let key in error) {
console.log(key + "==" + error[key]);
}
console.log(results);
console.log("============sql===========");
console.log(fields);
callback(JSON.parse(JSON.stringify(results)));
});
}
重复注册导致的唯一约束报错,关键是怎么在外层app.js中去捕获处理。不想所有异步可能出错的地方都加try{}catch 处理
或者从路由层到service层到数据dao层依次把route层的next传递下去?
app.js
//错误处理
app.use(function(err, req, res, next) {
console.log("=================错误处理=================")
//其他 业务逻辑
if (res.headersSent) {
return next(err);
}
res.status(500);
res.render('error', { error: err });
});
这里并没有捕获数据库操作的异常