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进程。