Javascript ReferenceError:未定义错误

Javascript ReferenceError:未定义错误,javascript,node.js,mongodb,express,backend,Javascript,Node.js,Mongodb,Express,Backend,我开始使用Mongo、Express和Node开发我的第一个API。当我试图为一个特定的用户创建API endponit时,控制台抛出errorReferenceError:err未定义。我已经用于auth part的方法中出现了一个错误,在那里它工作正常。代码的第5行错误部分: exports.userById = (req, res, next, id) => { User.findById(id).exec(() => { if(err || !user)

我开始使用Mongo、Express和Node开发我的第一个API。当我试图为一个特定的用户创建API endponit时,控制台抛出error
ReferenceError:err未定义
。我已经用于auth part的方法中出现了一个错误,在那里它工作正常。代码的第5行错误部分:

exports.userById = (req, res, next, id) => {
   User.findById(id).exec(() => {
       if(err || !user) {
           return res.status(400).json({
               err: "User not found"
           });
       }
       req.profile = user //adds profile object in req with user info
       next();
   });
}
另外,我尝试获取单个用户的代码部分:

exports.getUser = (req, res) => {
    req.profile.hashed_password = undefined;
    req.profile.salt = undefined;
    return res.json(req.profile); 
}
我不认为问题可能在这里,但也有路由文件中的路由行

router.get("/users/:userId", authController.requireSignin, userController.getUser);

谢谢大家的帮助

我很确定
err
来自
exec

User.findById(id).exec(err => {...});

编辑我猜你想按id搜索并返回一些内容。试试这个

 User.findById(id, (err, user) => {

    // if error display errort
    if(err) console.error(err);

    // if user do not exists
    if(!user) {// what is user ? the doc result ?
        return res.status(400).json({
            "err": "User not found"   // i think use ""
        });
    }

    req.profile = user //adds profile object in req with user info
    next();

 });

你从不将
err
定义为变量或参数或任何东西,实际上你从哪里得到这个
ReferenceError
是这一行的
if(err | | | user){
你在它之前没有定义过它,或者是作为参数等等。也许你想要做的就是从
exec内部的箭头函数的参数中得到它