Node.js 在AdonisJS控制器外部使用Lucid
我正在用AdonisJS构建一个项目,我想将它构建为一个模块化的、由两部分组成的应用程序:AdonisJS服务器运行一个控制面板,服务器外部的自定义脚本运行一个IRC bot。我一直在尝试将Lucid加载到第二个脚本中,以便与数据库交互,但它只返回一个空对象,Node.js 在AdonisJS控制器外部使用Lucid,node.js,adonis.js,Node.js,Adonis.js,我正在用AdonisJS构建一个项目,我想将它构建为一个模块化的、由两部分组成的应用程序:AdonisJS服务器运行一个控制面板,服务器外部的自定义脚本运行一个IRC bot。我一直在尝试将Lucid加载到第二个脚本中,以便与数据库交互,但它只返回一个空对象,{}。需要注意的一些事项: 我已确保我的数据库已填充 我已经在我的控制器中测试了代码,这些代码按照预期工作并获取结果 第二个脚本将启动与server.js相同的Adonis部分,而不是实际的HTTP服务器 我曾尝试将此脚本附加到HTTP服
{}
。需要注意的一些事项:
- 我已确保我的数据库已填充
- 我已经在我的控制器中测试了代码,这些代码按照预期工作并获取结果
- 第二个脚本将启动与server.js相同的Adonis部分,而不是实际的HTTP服务器
- 我曾尝试将此脚本附加到HTTP服务器,但没有效果
- 我还尝试过创建具有相同结果的原始QueryBuilder对象
#!/usr/bin/node
'use strict'
const fs = require('fs')
const bootstrap = require('./bootstrap/bot')
bootstrap(() =>
{
const AppConfig = use('AppConfig')
const Settings = use('App/Model/Settings')
const get_settings = function * () {
yield Settings.all()
}
console.log(get_settings())
})
console.log()
打印{}
,即使在控制器中调用的相同代码打印设置表中的所有条目bootstrap/bot.js
几乎完全是bootstrap/http.js
的复制品。唯一的区别是它不会启动HTTP服务器
我已经搜索了源代码,寻找在启动服务器和运行控制器代码之间可能发生的事情,看看是否有一些关键的东西我遗漏了,但我丢失了
有人知道我如何在AdonisJS控制器之外使用我的Lucid模型吗?这是因为你的函数是a,你只能用
yield
关键字调用生成器
所以您的console.log()
应该看起来像console.log(yield get\u settings())
您可以使用该包创建根生成器函数
bootstrap(co(function * () {
// ...
}))