【发布时间】:2015-10-07 23:50:32
【问题描述】:
我刚开始深入研究 node.js,但我有这个问题我想不通。
我在文件 passportAuth.js 中创建了这个用户,并有一个回调以确保用户已创建。
看起来像这样:
req.tmpPassport = {};
var fb = new fbgraph.Facebook(accessToken, 'v2.2');
fb.me(function(err, me) {
req.tmpPassport.me = me;
fb.my.events(function(err, events) {
req.tmpPassport.events = events;
fb.my.friends(function(err, result){
req.tmpPassport.results = result;
post_user();
});
});
});
//the callback
function post_user() {
// this function is only executed after the callback from the async call
return req.tmpPassport;
}
现在,我想将 var post_user() 返回传递给我的 express 路由器,该路由器位于另一个文件 routes.js 中,并像这样渲染它:
router.get('/profile', securePages, function(req, res, next){
res.render('profile', {title:'Welcome to aDating - Profile', user:--Pass Var Here--});
})
但我不知道如何...我试图要求这样的模块:
var fb_user = require('../auth/passportAuth.js');
然后像这样使用它:
router.get('/profile', securePages, function(req, res, next){
console.log(fb_user);
res.render('profile', {title:'Welcome to aDating - Profile', user:req.fb_user});
})
但它不起作用......有人可以帮忙吗?
【问题讨论】:
-
路由用于处理来自应用程序外部的请求。如果我没记错的话,看起来好像您是在从文件创建用户,然后想去一条路线?你能详细说明一下吗?
-
我会尝试更好地解释...我正在尝试创建用户而不是渲染用户的数据,所以如果让我们说用户有属性
name,我将在个人资料页面中能够显示此名称...显然只有在设置此名称后,这就是为什么post-user在那里
标签: javascript node.js asynchronous express