私は非常に単純なWebアプリケーションで作業していますが、1つのテーブルでINSERTとSELECT操作のデータベースに接続します。私はいくつかの偉大なチュートリアルをブラウズしている間に私が利用した機能を持っていますが、SELECTクエリからrows
を返すことに問題があります。私はNode.JSを学んでいることに留意してください。クエリ(SELECT)から返されたデータをこのブロックにどのように表示するのですか?関数node.js/MySQLの内部関数からの戻り値
app.post("/getcsv", function(req,res){
var sqlselall = "SELECT * FROM office";
var rows = handle_database(sqlselall);
res.json(rows);
res.end();
(使用プーリング)データベース接続を処理するための機能:内部機能でrows
は私が必要とするデータが含まれていることを私は実感
function handle_database(sqlstmt){
pool.getConnection(function(err,connection){
if(err) {
res.json({"code" : 100, "status" : "Error in connection to database."});
return;
}
console.log('connected as id ' + connection.threadId);
connection.query(sqlstmt, function(err,rows){
connection.release();
if(!err){
console.log("Number of rows affected: " + rows.affectedRows);
}
});
connection.on('error', function(err) {
res.json({"code": 100, "status" : "Error in connection to database."});
return;
});
、しかし、私はとのように途方に暮れてよ私は関数を呼び出すときにそれを返す方法。
[非同期呼び出しからの応答を返すにはどうすればよいですか?](https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-コール) – Paul
@Paul - 残念ながら私はJSのコールバックの概念を完全に把握していません。 – Smitty
これはちょうどあなたがいくつかのチュートリアルを実行する必要があります。コールバックは単なる関数ですが、必要な肉(例えば行)はその関数内でのみスコープされています。したがって、同じスコープで作業する必要があることを確認する必要があります。 – Paul