我想要做的是從外部API創建我的數據庫,首先我在我的DBController中創建一個函數loadData(req, res){}
,該函數從API中以JSON格式加載數據。用Sails.js保存JSON到MongoDb
我現在要做的是將這個返回的JSON保存在我的mongoDB中,我不知道如何。我該怎麼做?
我想要做的是從外部API創建我的數據庫,首先我在我的DBController中創建一個函數loadData(req, res){}
,該函數從API中以JSON格式加載數據。用Sails.js保存JSON到MongoDb
我現在要做的是將這個返回的JSON保存在我的mongoDB中,我不知道如何。我該怎麼做?
npm install sails-mongo --save
在config/connections.js中定義連接。如果您不使用其他數據庫,則可以將其設置爲config/models.js下的默認連接。
然後,您將不得不創建一個定義類似於外部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
});
如果JSON代表的匹配你的數據庫的結構,那麼所有你需要做的是加載文件記錄數組並保存內容
var data = require('./datafile.json')
MODEL.create(data).exec(function(err,result){/*...*/})
感謝,對externalJSON包含一些屬性我不會在我的數據庫,例如,如果我使用創建一個具有屬性1和2的模型,即使它不匹配externalJSON,我的模型是否會創建? – Grimmy
您可以在Mode.create之前從externalJSON中刪除不需要的屬性。嘗試使用數組。在這裏閱讀模型的基礎知識:http://sailsjs.org/#!/documentation/concepts/ORM/Models.html – Antariksha