throw new Error无法被捕获到
来源:6-1 用户注册与Sequelize新增数据

普通人阿磊
2019-11-18
(node:10318) UnhandledPromiseRejectionWarning: Error: email已经存在
at RegisterValidator.validateEmail (/Users/sunlei/Desktop/goose/app/validators/validator.js:46:15)
at process.internalTickCallback (internal/process/next_tick.js:77:7)
(node:10318) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:10318) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
SequelizeUniqueConstraintError: Validation error
at Query.formatError (/Users/sunlei/Desktop/goose/node_modules/sequelize/lib/dialects/mysql/query.js:223:16)
at Execute.handler [as onResult] (/Users/sunlei/Desktop/goose/node_modules/sequelize/lib/dialects/mysql/query.js:51:23)
at Execute.execute (/Users/sunlei/Desktop/goose/node_modules/mysql2/lib/commands/command.js:30:14)
at Connection.handlePacket (/Users/sunlei/Desktop/goose/node_modules/mysql2/lib/connection.js:408:32)
at PacketParser.Connection.packetParser.p [as onPacket] (/Users/sunlei/Desktop/goose/node_modules/mysql2/lib/connection.js:70:12)
at PacketParser.executeStart (/Users/sunlei/Desktop/goose/node_modules/mysql2/lib/packet_parser.js:75:16)
at Socket.Connection.stream.on.data (/Users/sunlei/Desktop/goose/node_modules/mysql2/lib/connection.js:77:25)
at Socket.emit (events.js:182:13)
at addChunk (_stream_readable.js:287:12)
at readableAddChunk (_stream_readable.js:268:11)
at Socket.Readable.push (_stream_readable.js:223:10)
at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:122:17)
在异步函数validateEmail中抛出了这个问题
async validateEmail(vals) {
const email = vals.body.email
const user = await User.findOne({
where: {
email: email
}
})
if(user) {
throw new Error(‘email已经存在’)
}
}
我测试了一下,这段代码块在throw new Error之前就抛出了一个错误,导致email已存在无法抛出.
1回答
-
7七月
2019-11-18
不是已经做了全局异常拦截吗?任何异常都会被中间件拦截到,仔细在看看视频吧
012019-11-18
相似问题