我不能在coffescript中读取sqlite数据

I can't read sqlite data in coffescript

本文关键字:读取 sqlite 数据 coffescript 不能      更新时间:2023-09-26

你好,我试着从我的sqlite中读取一些想法在咖啡。脚本当我写JS它工作得很好,但现在我有一些问题

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();
});

您查看了翻译的咖啡代码吗?当使用dbHandler:(err, row)->之类的东西时,会生成一个带有dbHandler属性的JSON-Object。这就是为什么不能将dbHandler和dbFinal传递给db.each调用。这只在定义类时有效。

另外,第10行有一个不匹配的括号,最后两行有一个太多的括号。

您应该始终检查已编译的代码(分别检查它是否可以编译)。这里有一个有用的网站。在这里,你甚至可以将JS代码转换为coffeescript。