2014-07-24 80 views
-1

你好,我嘗試在coffe.script從我的SQLite讀somethink當我寫的JS效果很好,但現在我得到了一些問題我不能coffescript讀sqlite的數據

Coffee.script: 我新的咖啡腳本,我想知道我在做什麼錯...任何提示傢伙? :)

app.get('/indeks', 
    (req, res)-> 
    tab = [] 
    i = 0 
    db = new sqlite3.Database("xxx.sqlite3") 
    tab = [] 
    i=0 
    console.log("Jestem przed dbHandler") 

    db.each("SELECT yyy FROM zzz", @dbHandler, @dbFinal 

    dbHandler:(err, row)-> 
     console.log("I am in handler dbHandler") 
     if err 
     console.log("Error: " + err) 
     else 
     tab.push(row) 
     console.log(row) 

    dbFinal:()-> 
     console.log("I am in dbFinal") 
     console.log("Final: " + tab) 
     console.log("Response") 
     res.send(tab) 
     db.close() 
    ) 
) 

現在代碼JS:

app.get('/indeks', function (req, res, next) { 

    var db = new sqlite3.Database("xxx"); 
    var tab = new Array(); 
    var i=0; 


    function dbHandler(err, row){ 
     if (err) { 
      console.log("Error: " + err); 
     } else { 
      tab.push(row); 
      console.log(row); 
     } 
    }  

    function dbFinal(){ 
     console.log("Final: " + tab); 
     console.log("Response"); 
     res.send(tab); 
    } 

    db.each("SELECT zzz FROM yyy", dbHandler, dbFinal); 
    db.close(); 

}); 
+0

你得到的錯誤是什麼? – frhd

回答

1

難道你看看transpiled咖啡的代碼?當使用類似dbHandler:(err, row)->的東西時,會生成帶屬性dbHandler的JSON對象。這就是爲什麼你不能將dbHandler和dbFinal傳遞給db.each調用。這隻在定義一個類時才起作用。

此外,你在第10行有一個不匹配的支架,在最後兩行有一個支架太多。

你應該經常檢查編譯好的代碼(分別檢查它是否編譯)。 Here是一個有用的網站。在那裏,你甚至可以將你的JS代碼轉換爲coffeescript。

+0

只是括號......這是一個問題,但thx幫助隊友! –