我想编写一个脚本来创建一些用户并将它们链接到其他一些资源。
检查回送文档,他们告诉您实例化应用程序/服务器以便完成它。 https://docs.strongloop.com/display/public/LB/Working+with+LoopBack+objects#WorkingwithLoopBackobjects-Fromacustomscript
但是这种方法意味着让应用程序运行,这是我想避免的副作用。
有关如何仅访问模型而不访问整个应用程序的任何想法?
答案 0 :(得分:2)
如果您想通过Loopback创建一些种子数据,可以创建一个seedusers.js
文件,其中包含以下代码:
var loopback = require('loopback');
var boot = require('loopback-boot');
var app = module.exports = loopback();
boot(app, __dirname);
然后运行node seedusers
这将在您的启动目录中运行任何脚本,但不会启动Web服务器。
答案 1 :(得分:1)
我们在没有启动Web服务器的情况下运行脚本所使用的是在github的环回示例中建议的“work-arround”。
在app.js中添加此内容...
$sql = new mysqli(null,
'root', // username
'', // password
<database-name>,
null,
'/cloudsql/<your-project-id>:<your-instance-name>'
);
...只有在直接调用时才会启动应用程序,而不是在需要时启动。
因此,在我们的脚本中使用$conn = mysql_connect(':/cloudsql/<your-project-id>:<your-instance-name>',
'root', // username
'' // password
);
mysql_select_db('<database-name'>);
,我们可以完全访问app.models而无需运行任何不必要的内容。
答案 2 :(得分:0)
如果有人试图在Electron中执行此操作,则除非您覆盖app.models
,否则不会在runtime.isServer
中定义您的模型。
要覆盖它,请在要求环回之前添加它:
let path = require('path');
let runtime = require(path.join(__dirname, '../node_modules/loopback/lib/runtime'));
runtime.isBrowser = false;
runtime.isServer = true;