将Facebook数据持久化到Mongodb(Node.js + Express + jade)中



我正在开发简单的网络应用程序,要求Facebook访问令牌并检索登录用户的"帖子"数据。

点击"登录"后,它会调用FB.api来检索用户帖子,并在javascript中使用innerHTML来更新用户状态:

<div id="fb-root"></div>
<div id="user-info"></div>
<div id="user-email"></div>
<div id="user-status" name="post"></div>
<button id="fb-auth">Login</button>

我的目标是将这些更新的数据保存到 mongodb 中。

我尝试是在检索帖子时强制提交表单并在"name="post"中传递数据,但是,这会使页面再次刷新,并且值也显示未定义。

Javascript:

FB.api('/me/posts', { limit: 100 }, function(response) {
            var userStatus = document.getElementById('user-status');
            for (var i=0, l=response.data.length; i<l; i++) {
              var post = response.data[i];
              if (post.message) {
                userStatus.innerHTML = userStatus.innerHTML + ' ' + post.message ;
                var form = document.createElement('form');
                form.setAttribute('method', 'post');
                form.style.display = 'hidden';
                document.body.appendChild(form);
                form.submit();
              } else if (post.attachment && post.attachment.name) {
                alert('Attachment: ' + post.attachment.name);
              }
            }             
          });

app.js(req.param('post') 是未定义的,因此 mongodb 注入了未定义的数据):

app.post('/', function(req, res){
  postProvider.save({
    posts: req.param('post')
  }, function(error, docs){
    res.redirect('/')
  });
});

任何建议将不胜感激。谢谢你的时间。

要获取表单数据,您必须使用:

req.body.post

最新更新