【问题标题】:sqlite from node js not returning result来自节点 js 的 sqlite 不返回结果
【发布时间】:2018-04-19 14:56:46
【问题描述】:

我对这个节点 js 和 sqlite 有点陌生,但我创建了一个简单的函数来从我的 sqlite db 中获取 1 个结果

getOne: function() {
 sql.get(`SELECT * FROM currency_list order by rowid desc limit 1`).then(row => {
  if (!row) {
    return console.log("no data");
  } else {
    return row;
  }
});
},

然后我的调用者是这样的

 module.exports = {
  run : (args, Client, msg, isOwner) => {
  let results = db.getOne();
  console.log("test result =>"+JSON.stringify(results));
 }
 };

我没有得到任何结果,因为我的控制台日志将显示函数未定义。我可以知道如何使函数返回值吗?

【问题讨论】:

    标签: javascript sqlite


    【解决方案1】:

    您从传递给then 的回调函数返回结果,而不是从getOne 函数。

    要解决这个问题,你可以这样做:

    getOne: function() {
        return sql.get(`SELECT * FROM currency_list order by rowid desc limit 1`).then(row => {
                    if (!row) {
                        return console.log("no data");
                    } else {
                        return row;
                    }
               });
    }
    

    得到这样的结果:

    getOne().then(result => console.log(result));
    

    或者,由于您在 nodejs 中执行此操作,您也可以执行此操作:

    async function something(){
        let result = await getOne();
        console.log(result);
    }
    something();
    

    【讨论】:

    • 感谢您的帮助。现在我明白为什么它不早点工作了。
    猜你喜欢
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多