我正在使用Loopback并希望通过脚本将数据保存到数据库中。
我编写了一个自定义命令,我将通过cronjob运行:
'use strict';
var loopback = require('loopback');
var app = module.exports = loopback();
var boot = require('loopback-boot');
app.start = function() {
return app.listen(function() {
const baseUrl = app.get('url').replace(/\/$/, '');
console.log('Web server listening at: %s', baseUrl);
let Dish = app.models.dish;
console.log(Dish);
})
}
boot(app, __dirname, function(err) {
if (err) throw err;
// start the server if `$ node server.js`
if (require.main === module)
app.start();
});
我得到的输出是:
Web server listening at: http://localhost:3000
undefined
如何访问菜模型?
答案 0 :(得分:2)
您可以在环回中访问模型,如下所示:
首先需要当前文件中的server.js文件。
const app = require('YOUR_SERVERJS_FILE_PATH');
const MY_MODEL = app.models.YOUR_MODEL_NAME
此处, YOUR_MODEL_NAME 与YOUR_MODEL.json文件的名称值相同。
希望你能明白我的意思。 谢谢。
答案 1 :(得分:0)
您没有调用启动功能
https://github.com/strongloop/loopback-boot
loopback-boot模块初始化(bootstraps)一个LoopBack 应用。具体来说,它:
配置数据源。
定义自定义模型配置模型并将模型附加到数据源。
配置应用程序设置
运行其他启动脚本,因此您可以将自定义安装代码放在多个小文件中,而不是放在主应用程序文件中。
您的服务器js可能包含与此类似的内容
var boot = require('loopback-boot');
app.start = function() {
return app.listen(function() {
const baseUrl = app.get('url').replace(/\/$/, '');
console.log('Web server listening at: %s', baseUrl);
if (app.get('loopback-component-explorer')) {
const explorerPath = app.get('loopback-component-explorer').mountPath;
console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
}
})
}
boot(app, __dirname, function(err) {
if (err) throw err;
// start the server if `$ node server.js`
if (require.main === module)
app.start();
});
您需要这些来启动应用程序。你可能只能通过调用boot来逃避,但我认为app.start
是连接数据源的那个。
答案 2 :(得分:0)
像这样构建命令脚本:
let app = require('./server/server') // Set the path according on the location of your command script
app.models.YOUR_MODEL // Access the model