【发布时间】:2021-11-08 06:38:20
【问题描述】:
我想在提交之前检查用户输入的类别是否真的存在。我使用 express-validator 验证我的字段。正常的 req.checks 像 .exists().trim()... 工作正常但是当我尝试这个时:
.custom(value => {
return new Promise((resolve, reject) => {
connection.query("SELECT id FROM cat WHERE cat_name = ?", [value], (err, results) => {
if (err)
reject(err);
if (results[0] == 'undefined')
reject(new Error('This topic does not exist or is misspelled.'))
resolve();
})
});
编辑: 它实际上在中间件中有效,但在函数中无效:/
【问题讨论】:
-
这可能与
connection.query的callback样式有关,您是否尝试过在connection.query上使用util.promisify,以便connection.query可能是awaited?然后您应该能够在connection.query上使用await并获得现在可以使用条件逻辑返回的“结果”。
标签: node.js express async-await express-validator