gpt4 book ai didi

javascript - 如何使用 PG 在 Node JS 中获取 client.query 的值?

转载 作者:搜寻专家 更新时间:2023-10-31 23:58:52 26 4
gpt4 key购买 nike

我正在使用 node.js 并使用 postgresql 建立数据库连接。我的 dbConfig.js 看起来像:-

var pg = require('pg');
var client = new pg.Client({
host:'myhoost',
port:'5432',
user:'myuser',
password:'mypass',
database:'mydb',
ssl:true
});
client.connect();
module.exports.myconnection = client;

我的 api.js 文件看起来像:-

var dbConnect = require('./dbConfig.js');
var client = dbConnect.myconnection;
var ser = function(value) {
var query = "SELECT * FROM tbl_api WHERE apikey = '" + value + "'";

client.query(query, function(err, result) {
var res = true;
if (err) {
var res = false;
} else {
if (result.rowCount > 0) {
res = true;
} else {
res = false;
}
}
return res;
});
};
module.exports.checkAPI = ser;

我的 api.js 看起来像:-

var express = require('express');
var app = express();
var apiCheck = require('./api.js');


//APIKey Generator check api
app.get('/apicheck/:apikey', function(request, response) {
var value = request.params.apikey;
var result = apiCheck.checkAPI(value);
response.send(result);
});

我想将来自 client.query 的 res 放入结果变量中。我发现了与 mysqljs issue 相同的问题但我仍然无法解决这个疑问。

最佳答案

我们需要回调完成以返回响应,解决此问题的方法之一是使用 promises,如下所示:

var ser = function(value) {
var query = "SELECT * FROM tbl_api WHERE apikey = '" + value + "'";
return new Promise(function (resolve, reject) {
client.query(query, function(err, result) {
if (err) {
return reject(err);
} else {
if (result.rowCount > 0) {
return resolve(true);
}
}
return resolve(false);
});
});
};
module.exports.checkAPI = ser;

并且在您的 api.js 中更改为:

var express = require('express');
var app = express();
var apiCheck = require('./api.js');


//APIKey Generator check api
app.get('/apicheck/:apikey', function(request, response) {
var value = request.params.apikey;
apiCheck.checkAPI(value)
.then(function(result) { response.send(result); })
.catch(function(err) { response.send(err); });
});

关于javascript - 如何使用 PG 在 Node JS 中获取 client.query 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44581716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com