Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在AdonisJS控制器外部使用Lucid_Node.js_Adonis.js - Fatal编程技术网

Node.js 在AdonisJS控制器外部使用Lucid

Node.js 在AdonisJS控制器外部使用Lucid,node.js,adonis.js,Node.js,Adonis.js,我正在用AdonisJS构建一个项目,我想将它构建为一个模块化的、由两部分组成的应用程序:AdonisJS服务器运行一个控制面板,服务器外部的自定义脚本运行一个IRC bot。我一直在尝试将Lucid加载到第二个脚本中,以便与数据库交互,但它只返回一个空对象,{}。需要注意的一些事项: 我已确保我的数据库已填充 我已经在我的控制器中测试了代码,这些代码按照预期工作并获取结果 第二个脚本将启动与server.js相同的Adonis部分,而不是实际的HTTP服务器 我曾尝试将此脚本附加到HTTP服

我正在用AdonisJS构建一个项目,我想将它构建为一个模块化的、由两部分组成的应用程序:AdonisJS服务器运行一个控制面板,服务器外部的自定义脚本运行一个IRC bot。我一直在尝试将Lucid加载到第二个脚本中,以便与数据库交互,但它只返回一个空对象,
{}
。需要注意的一些事项:

  • 我已确保我的数据库已填充
  • 我已经在我的控制器中测试了代码,这些代码按照预期工作并获取结果
  • 第二个脚本将启动与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 * () {
  // ...
}))