2015-06-11 58 views
1

我想要做的是從外部API創建我的數據庫,首先我在我的DBController中創建一個函數loadData(req, res){},該函數從API中以JSON格式加載數據。用Sails.js保存JSON到MongoDb

我現在要做的是將這個返回的JSON保存在我的mongoDB中,我不知道如何。我該怎麼做?

回答

2
  1. 請確保您有帆,蒙戈在模塊中添加的適配器以其他方式使用, npm install sails-mongo --save
  2. 在config/connections.js中定義連接。如果您不使用其他數據庫,則可以將其設置爲config/models.js下的默認連接。

  3. 然後,您將不得不創建一個定義類似於外部API返回的JSON內容的模型。

例如,如果外部API正在返回。

[{ 
attribute1: '<value>', 
attribute2: '<value>', 
attribute3: '<value>' 
}] 

你想創建一個名爲Model.js像下面在/ API /機型型號,

module.exports = { 

    attributes: { 
    attribute1: {type: 'integer'}, 
    attribute2: {type: 'string'}, 
    attribute3: {type: 'datetime'} 
} 
}; 

參考this獲得關於創建模型的更多想法。

  • 然後在你的控制器,你可以這樣做,

    var externalJSON = <API result JSON>; 
    Model.create(externalJSON) 
    .exec(function(err, user){ 
        //Processing 
    }); 
    
  • +0

    感謝,對externalJSON包含一些屬性我不會在我的數據庫,例如,如果我使用創建一個具有屬性1和2的模型,即使它不匹配externalJSON,我的模型是否會創建? – Grimmy

    +1

    您可以在Mode.create之前從externalJSON中刪除不需要的屬性。嘗試使用數組。在這裏閱讀模型的基礎知識:http://sailsjs.org/#!/documentation/concepts/ORM/Models.html – Antariksha

    2

    如果JSON代表的匹配你的數據庫的結構,那麼所有你需要做的是加載文件記錄數組並保存內容

    var data = require('./datafile.json') 
    MODEL.create(data).exec(function(err,result){/*...*/})