2015-09-25 85 views
0

我正在嘗試使用Facebook身份驗證編寫一個小api,因爲我是新到node.js的,我只是有點困惑,應該如何構造這個。節點js:在模型外部使用類似模型的代碼

我有一個路線稱爲auth.js,看起來像這樣:

var express = require('express'); 
var crypto = require('crypto'); 
var rp = require('request-promise'); 

var router = express.Router(); 

router.post('/', function(req, res) { 
    rp('https://graph.facebook.com/me?access_token=' + req.body.fbAccessToken).then(function(body) { 
     var json = JSON.parse(body); 
     if(json.error) { res.status(403).send(json.error.message); } 

     var user = new User({ 
      userId: json.id, 
      fbAccessToken: req.body.fbAccessToken, 
      apiAccessToken: crypto.randomBytes(64).toString('hex'), 
      firstName: json.first_name, 
      lastName: json.last_name, 
      email: json.email 
     }); 

     user.save(function(err) { 
      if (err) throw err; 
      return user.userId; 
     }); 
    }).then(function(userId) { 
     res.status(201).send('something'); 
    }).catch(function(err) { 
     res.status(403).send(err); 
    }); 
}); 

module.exports = router; 

當路由臨危它從該請求並檢查Facebook的令牌,如果它使用Facebook的圖形API是合法的一個職位。 (道歉,如果承諾的東西看起來有點時髦,我也試圖學習)。

無論如何,我也有用戶模型和user.js路由。我想知道的是,如果發生在我的auth路由中的User創建應該移動到User模型,並且以某種方式從這裏調用模型函數?通過用戶路線也許?

乾杯

回答

0

是的,是的。我認爲用戶的東西可以放在/ user下,如果用戶創建在自己的模塊中,它會更乾淨。

順便說一句你看到了fbgraph

+0

我不需要fbgraph謝謝,我只對圖API進行單個GET。用戶創建代碼會在我的模型或路線中進行嗎?如何從auth.js中調用它? – millarnui