我一直在查看https://github.com/linnovate/mean
的平均筹码我想知道_json方法在
中做了什么passport.use(new FacebookStrategy({
clientID: config.facebook.clientID,
clientSecret: config.facebook.clientSecret,
callbackURL: config.facebook.callbackURL
},
function(accessToken, refreshToken, profile, done) {
User.findOne({
'facebook.id': profile.id
}, function(err, user) {
if (err) {
return done(err);
}
if (!user) {
user = new User({
name: profile.displayName,
email: profile.emails[0].value,
username: profile.username,
provider: 'facebook',
facebook: profile._json
});
user.save(function(err) {
if (err) console.log(err);
return done(err, user);
});
} else {
return done(err, user);
}
});
}
));
它看起来像下划线函数,但我在下划线参考中找不到任何内容。也有人知道这是来自哪个图书馆吗?
答案 0 :(得分:3)
这是一个存储原始JSON的字段。它由Facebook module for Passport:
生成var profile = parse(json);
profile.provider = 'facebook';
profile._raw = body;
profile._json = json;
答案 1 :(得分:0)
使用_name
是用于内部目的的对象的常见约定属性,但对于任何情况都是完全合法的。使用Underscore.js,您将只使用_.methodName
,而不是_name
,因此如果您看到调用方法的下划线对象,则可能是Underscore。下划线使用_name
用于内部目的,但您可能永远不会使用它们。