【问题标题】:Setting a Variable to a DB call将变量设置为数据库调用
【发布时间】:2018-03-08 03:26:01
【问题描述】:

我正在尝试将变量设置为返回布尔值的函数。但是,我似乎无法做到这一点。这是你使用异步函数的地方吗?

这是我的代码:(NodeJS)

function getNumbers() {

    return client.query(query, (error, result) => {
        if (error) {
        console.log(error)
        return false
        } else if (result.rows.length) return true
        else return false
    })
}

app.post('/receiveSMS', (request, response) => {
    let doesUserExist = getNumbers()
    console.log(doesUserExist)
}

未定义控制台日志记录时得到的输出。

感谢您的帮助!

【问题讨论】:

标签: node.js function variables asynchronous server


【解决方案1】:

client.query 不会返回结果,而是在执行查询时调用回调方法。

function getNumbers(callback) {

    return client.query(query, callback)
}

app.post('/receiveSMS', (request, response) => {
    let doesUserExist
    getNumbers((error, result) => {
        if (error) {
           console.log(error)
           doesUserExist = false
        } else if (result.rows.length) {
            doesUserExist = true 
        } else {
           doesUserExist = false
        }

        console.log(doesUserExist)
        // send response
    })

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2020-05-08
    • 2017-06-15
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多