私は、クライアント側から次のAJAXポストコールを持っているからデータを取得できません。サーバー上 私は正常以下でDBにデータを挿入します。は、AJAX POST成功機能エクスプレス/ MySQLの
router.post('/', function(req, res) {
console.log(req.body.homeTeam,req.body.awayTeam);
var connection = mysql.createConnection(global.dbSettings);
connection.connect(function(err,res) {
if (err) {
console.log(err);
} else {
console.log("connected.");
connection.query(
"INSERT INTO game(homeTeam,awayTeam,game_date) VALUES (?,?,?)",
[req.body.homeTeam,req.body.awayTeam,req.body.date],
function (err, results) {
if (err) {
console.log(err);
} else {
console.log("Game Created with Game_ID:"+results.insertId);
console.log(req.body.homeTeam,req.body.awayTeam,req.body.date);
}
});
connection.end(function (err) {
if (err) {
console.log("The connection could not be closed.");
} else {
console.log("The connection is closed.");
}
});
}
});
res.end();
});
データが正しく挿入されています。 insertId()関数は、results.insertIdがコンソールに出力しているように正しく動作しています。私はちょうどクライアントにそれを得ることができません。
私はクライアント側でこれが必要です。私はそれが成功関数でアクセス可能でなければならないと考えましたが、それはすべて「真」です。
誰かが私にこのことをクライアントに送る方法を教えてください。
あなたの回答に感謝しますが、私が達成しようとしているのは最後に挿入された行の主キーを返すことです。ちょうどそのためのmySQL insertedId()が組み込まれた関数があります。その関数の鍵は、最後に挿入された行 "I"のIDを常に送信し、同じ接続内でそのIDを送信するということです。GETを使用するには、他の人が挿入した行のIDを渡すことができます。これは、上記のinsert文(results.insertedId)を含む関数内で私に利用可能ですが、私はどこにでも、クライアントに戻って返すことはできません。 –
私がよく理解しているかどうかはわかりませんが、もしあなたが "POST"をする代わりに "GET"でデータを送信すれば、パラメータがURLに公開されます。次に、この主キーをクライアントに戻すだけです。そして、コールバック関数の 'else'文の中にこの応答を送るべきです。さもなければ、あなたはそのキーがそこにあることを保証できません。 –