LoopbackJS 生成对应 Oracle 视图的model

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文件里写的操作全都不会执行到, - -|| 相当于没有这个文件。

posted @ 2016-12-27 17:17  萧清水  阅读(541)  评论(0)    收藏  举报