2017-06-16 14 views
0

私はnode.jsを使用しており、postgresqlとのデータベース接続を行っています。私api.jsがどのように見えるPGを使用したNode JSでclient.queryの値を取得する方法は?

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; 

: - - :

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

私が望むよう

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ファイルルック - : 私dbConfig.jsは次のようになりresからclient.queryをresult変数に追加します。私はmysqljs issueと同じ問題を発見しましたが、まだ私はこの疑問を解決することができません。

+0

何:へ

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変更にあなたは受け取っていますか? – Zeokav

+0

私は何も受け取りません。 @ゼオカブ –

+0

なぜ誰かがこの質問に投票した?私は疑いを抱いているだけです。それは有効かどうか? –

答えて

0

私たちは、以下に示すように、これを解決する方法の一つがpromisesを使用している、応答を返すために完了するためにコールバックを必要とする:

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); }); 
}); 
+0

約束は何ですか?みんなと同じように? @nash_ag –

+0

これは私にエラーを与えます。TypeError:未定義の 'then'プロパティを読み取ることができません。 –

+0

ああ - 答えを固定します。 –

関連する問題