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

How to get the list of defined models in loopback.js?

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

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

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

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

感谢和问候。

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

console.log(app.models) 

如果您想访问特定型号

console.log(app.models.modelName);

您对环回应用程序对象的引用(以及检索模型的方式)不正确。您不能要求环回并期望应用程序实例。在 loopback.js 中,入口脚本是 server/server.js,它初始化应用程序,并运行必要的进程以将其提升到定义的端口。 Loopback 应用程序有一个 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

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