我想编写一个脚本来创建一些用户,并将它们链接到其他资源。
检查环回文档,他们告诉你实例化应用程序/服务器以使其复杂化。https://docs.strongloop.com/display/public/LB/Working+with+LoopBack+objects#使用LoopBack objects Fromacustomscript
但这种方法意味着让应用程序运行,这是我想避免的副作用。
有没有想过如何只访问模型而不访问整个应用程序?
如果您想通过Loopback创建一些种子数据,可以创建一个seedusers.js
文件,其中包含以下代码:
var loopback = require('loopback');
var boot = require('loopback-boot');
var app = module.exports = loopback();
boot(app, __dirname);
然后运行node seedusers
这将运行启动目录中的任何脚本,但不会启动Web服务器。
我们用于在不启动web服务器的情况下运行脚本的是github的环回示例中建议的"工作区"。
通过在你的app.js中添加这个…
// start the server if `$ node server.js`
if (require.main === module) {
app.start();
}
只有在被直接调用的情况下才能启动应用程序,而不是在需要的情况下。
因此,在我们的脚本中使用var app = require('../app');
,我们可以完全访问app.model,而无需运行任何不必要的操作。
如果有人试图在Electron中执行此操作,则除非覆盖runtime.isServer
,否则您的模型将不会在app.models
中定义。
要覆盖它,请在需要环回之前添加此项:
let path = require('path');
let runtime = require(path.join(__dirname, '../node_modules/loopback/lib/runtime'));
runtime.isBrowser = false;
runtime.isServer = true;