2017-02-24 3 views
1

私はAdonisJSを使ってプロジェクトを構築しています。モジュール式の2つのアプリケーションとして構築したいと考えています:AdonisJSサーバーはコントロールパネルを実行し、 IRCボット。私は2番目のスクリプトにLucidをロードしようとしていたので、私のデータベースとインターフェースすることができましたが、空のオブジェクト{}しか返しません。メモするべき事項:AdonisJSコントローラの外部でLucidを使用する

  • 私のデータベースにデータが入力されていることを確認しました。
  • 私はコントローラで動作するコードをテストし、結果を期待通りにフェッチしました。
  • セカンダリスクリプトは、Adonisのすべての部分をserver.jsとして起動し、実際の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サーバーを起動しないことです。

私は、サーバーの起動とコントローラコードの実行の間に発生する可能性のあるものを探して、欠けているものがあるかどうかを確認しましたが、失われました。

LucidモデルをAdonisJSコントローラの範囲外で使用する方法を知っている人はいますか?

答えて

1

あなたの機能はgeneratorであり、yieldキーワードを使用して発電機を呼び出すことができるからです。

console.log()console.log(yield get_settings())のようになります。

パッケージcoを使用してルートジェネレータ機能を作成することができます。

bootstrap(co(function *() { 
    // ... 
})) 
+0

これは助けました。ありがとう – Ali

関連する問題