Node.js req.user已更改为数组对象

Node.js req.user已更改为数组对象,node.js,express,passport.js,compoundjs,Node.js,Express,Passport.js,Compoundjs,在运行npm安装后,我遇到了一个奇怪的问题 访问`requireManager()(或任何控制器)时,req.user的实例是数组类型,而不是passport.deserializeUser返回的对象 passport.deserializeUser(function(id, done) { compound.models.User.findById(id, function(err, user) { done(err, user); }); }); 控制器打

在运行
npm安装后,我遇到了一个奇怪的问题

访问`requireManager()(或任何控制器)时,
req.user
的实例是数组类型,而不是passport.deserializeUser返回的对象

passport.deserializeUser(function(id, done) {
    compound.models.User.findById(id, function(err, user) {
         done(err, user);
    });
});
控制器打印中的console.log(req.user.constructor)

function Array() { [native code] }   

请帮我解决这个问题

问候,,
萨钦

以防有人通过谷歌搜索(比如我)来到这里

passport.deserializeUser
中,在模型上使用
findById
返回一个数组,使用
findOne
或将
user[0]
传递到
done

passport.deserializeUser(function (id, done) {
    myModel.findOne(id, function (err, user) {
        done(err, user);
    });
});

你能发布你的(反)序列化用户实现吗?编辑了帖子并包含反序列化用户我对CompoundJS不太熟悉,但它会覆盖
req.user
本身吗?您的
反序列化用户
看起来不错。谢谢,我自己也这么做了,但决定搜索一个更“合法”的答案。我不知道findById返回了一个数组,但这解释了这种奇怪的行为。
passport.deserializeUser(function (id, done) {
    myModel.findOne(id, function (err, user) {
        done(err, user);
    });
});