StrongLoop Arc 工具中的discover model 目前只能discover 表, Oracle数据库中的视图经测试并不能显示在列表中。
无奈之下,暂时只能采取替代方案。
解决方法: 在server/boot/ 目录下建立一个script, 代码如下:
// addSchema.js var fs = require('fs'); module.exports = function(app){
var dataSource = app.datasources.local; // “local” 是我定义的dataSource
var schemaName = "VIEW_BLOCKINFO"; // 数据库中的视图名称
var filePath = "E:\\work\\APIPlatformProjectFile\\sourcecode\\DATA_EP_Project\\SourceCode\\api-server\\common\\models\\block-info.json"; // 要保存的文件路径 dataSource.discoverSchema(schemaName, {owner: 'DEP'},function(err, schema) {
if (err) throw err;
schema.name = "BlockInfo"; // 自己定义的modelname
schema.base = "PersistedModel"; // shema中不含有base属性,需要自己添加
//console.log('schema:', schema);
fs.writeFile(filePath,
JSON.stringify(schema, null, 2), 'utf8', function (err) { // 格式化json输出,避免混成一坨.
if (err) throw err;
console.log('saved');
});
}); };
然后在common/models/ 目录下添加文件 "block-info.js"
Oracle中视图对应的model就创建成功了。其他操作和普通的表对应的model是一样的。
此处有个点需要特别注意:
model的json文件和js文件的名称一定要相同,否则,在js文件里写的操作全都不会执行到, - -|| 相当于没有这个文件。