我可以从示例json实例创建一个loopback模型,如下所示https://docs.strongloop.com/display/public/LB/Creating+models+from+unstructured+data。但是,有一个API可以在common / models中创建.json文件吗?
答案 0 :(得分:0)
尝试
app.registry.modelBuilder.introspect(json)
;应该给你一个属性对象。然后只需添加名称,基础名称和fs.writeSync JSON.stringify(obj)
。
我还没有尝试过,但这是有道理的。
答案 1 :(得分:0)
我一直在使用它:
var User = db.buildModelFromInstance('User', user, {idInjection: true});
var UserModel = (loopback.getModel(User));
var UserModelJSON = {}
UserModelJSON.name = 'User';
UserModelJSON.base = 'PersistedModel';
UserModelJSON.properties = UserModel.definition.rawProperties;
console.log(JSON.stringify(UserModelJSON));
fs.writeFile('User.json', 'UserModelJSON', function(err) {
if (err) throw err;
});
答案 2 :(得分:0)
在项目根目录的loopback /server
目录中,如果您定义datasources.json
文件,那么
{
"db": {
...
},
"restResourceName": {
"name": "restResourceName",
"baseURL": "http://restResourceUrl/",
"crud": true,
"connector": "rest"
}
}
你定义了一个启动脚本,就像这样
const fs = require('fs')
const path = require('path')
const writeInstance = (server, modelName, instance) => {
let Model = server.dataSources.restResourceName.buildModelFromInstance(modelName, instance)
let modelJson = Model.definition.toJSON()
delete modelJson.settings.base
fs.writeFile(path.join(__dirname, '..', 'models', modelName + '.json'),
JSON.stringify(modelJson, null, 2), (/*...*/) => {
/*...*/
})
}
module.exports = function (server) {
writeInstance(server, "Atom", {
atomicWeight: 6
})
}
您将生成模型文件Atom.json
{
"name": "Atom",
"properties": {
"atomicWeight": {
"type": "Number"
},
"id": {
"type": "Number",
"id": 1,
"generated": true,
"updateOnly": true
}
},
"settings": {
"strict": false,
"forceId": "auto",
"replaceOnPUT": true
}
}
如果您想在loopback api explorer(swagger GUI)中查看模型,您必须将模型添加到model-config.json
public: true
属性
{
"_meta": {
"sources": [
...
],
"mixins": [
...
]
},
"Atom": {
"public": true,
"dataSource": "restResourceName"
}
}