Node.js 无法导出函数
我尝试使用以下功能:Node.js 无法导出函数,node.js,express,promise,es6-promise,Node.js,Express,Promise,Es6 Promise,我尝试使用以下功能: exports.get = async function (req, res, next) { filter.validateId(req,res,next); const db = req.app.get('db'); let id = req.params.id; let user; try { user = await db.models.user.findByPk(id); } catch (err) { res.send(4
exports.get = async function (req, res, next) {
filter.validateId(req,res,next);
const db = req.app.get('db');
let id = req.params.id;
let user;
try {
user = await db.models.user.findByPk(id);
} catch (err) {
res.send(400)
}
res.json(user);
};
var validateId = function (req, res, next) {
let id = parseInt(req.params.id);
if (isNaN(id) || id <= 0) {
res.send(400);
}
res.locals.id = id;
return next();
};
exports.validateId=validateId;
和导出功能:
exports.get = async function (req, res, next) {
filter.validateId(req,res,next);
const db = req.app.get('db');
let id = req.params.id;
let user;
try {
user = await db.models.user.findByPk(id);
} catch (err) {
res.send(400)
}
res.json(user);
};
var validateId = function (req, res, next) {
let id = parseInt(req.params.id);
if (isNaN(id) || id <= 0) {
res.send(400);
}
res.locals.id = id;
return next();
};
exports.validateId=validateId;
var validateId=函数(请求、恢复、下一步){
让id=parseInt(请求参数id);
如果(isNaN(id)| id这是错误的,原因有两个:
第一名:
if (isNaN(id) || id <= 0) {
res.send(400); //return res.send(400);
}
app.get('/route',validateId,get,(req,res)=>{..do something})
或
app.get('/route',validateId,get)
发送头后,错误无法设置头
是因为您发送了两次响应,可能是在validateId
上,然后使用res.json(用户)
ok,我修复了if,但现在我得到了错误unhandledPromisejectionWarning:unhandledPromisePromisejection。此错误源于抛出不带catch块的异步函数内部,或者拒绝未使用.catch()处理的承诺。(拒绝id:1)(节点:21582)[DEP0018]弃用警告:未处理的承诺拒绝将被弃用。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程。