如何在loopback.js中获取已定义模型的列表?

时间:2018-10-11 09:47:48

标签: node.js loopbackjs

我创建了Loopback.js应用程序并定义了与数据源对话的模型。在Loopback资源管理器中一切正常。 server.js运行正常。 在/ server文件夹中,我创建了另一个包含以下内容的js文件:

var loopback = require('loopback');
var app = module.exports = loopback();
console.log(app.models());

运行该文件时,不会显示任何模型。 结果为:[]。 这是一个空数组。

您知道为什么我无法获得整个型号列表吗?

感谢和问候。

2 个答案:

答案 0 :(得分:2)

let app = require('../../server/server'); /** make sure the path to server is right **/

console.log(app.models) 

如果您要访问特定型号

console.log(app.models.modelName);

答案 1 :(得分:1)

您对回送应用程序对象的引用(以及检索模型的方式)不正确。您不需要环回就可以期待应用程序实例。在loopback.js中,输入脚本为server/server.js,它将初始化应用程序,并运行必要的过程以将其提升到定义的端口上。环回应用程序具有一个server/boot目录,该目录驻留文件,一旦应用程序准备就绪模型可用,这些文件就会立即执行。进行必要的修改,将文件移至引导目录。

此外,要使模型在环回应用程序范围内可用-您必须将模型添加到model-config.json

例如。

 {
    "ModelOne": {
       "dataSource": "mysql",
       "public": false
    },
    "ModelTwo": {
       "dataSource": "db",
       "public": false
    },
    "YourModel": {
        "dataSource": "mysql", // this value comes from datasources.json -- well, remove this line because json file doesn't support comments
        "public": false
    }
 }

现在,YourModel已绑定到应用程序,可以通过app对象或任何当前模型进行访问。例如:

app.models.YourModel

app实例已附加到每个有效模型,因此您可以通过以下方式访问另一个模型而不必requireimport: (假设您在model-one.js文件中)

ModelOne.app.models.YourModel

(不为您编写代码!记住,他们的关键是向社区学习并自己实施)