我想要做的是从外部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