2017-02-24 102 views
1

我正在用AdonisJS構建一個項目,我想將它構建爲模塊化的兩部分應用程序:AdonisJS服務器運行一個控制面板,並在該服務器之外運行一個自定義腳本IRC bot。我一直在試圖將Lucid加載到第二個腳本中,以便我可以與我的數據庫進行交互,但它只返回空對象{}。有些事情要注意:在AdonisJS控制器之外使用Lucid

  • 我已經確定我的數據庫已填充。
  • 我測試了我的控制器中的代碼,它可以正常工作並獲取結果。
  • 輔助腳本啓動Adonis的所有相同部分作爲server.js,sans實際的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模型嗎?

回答

1

這是因爲您的功能是generator,您只能使用yield關鍵字調用生成器。

所以你的console.log()應該看起來像console.log(yield get_settings())

您可以使用包co創建根生成器功能。

+0

這個幫助。謝謝 – Ali

相關問題