Im folgenden Code versuche ich Daten aus MySQL-Datenbank abrufen und sie einem Benutzer anzeigen, indem Antwort schreiben verwendet. Der Fehler, was ich habe ist Error: write after end
:Node JS-Fehler: Schreiben nach Ende
var http = require("http");
var mysql = require('mysql');
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false })
app.use(express.static('public'));
app.get('/Search.html', function (req, res) {
res.sendFile(__dirname + "/" + "Search.html");
})
var connection = mysql.createConnection(
{
host : 'localhost',
user : 'root',
password : 'somepass',
database : 'SocialQuery',
}
);
connection.connect();
app.post('/process_post', urlencodedParser, function (req, res) {
// Prepare output in JSON format
response = {
SearchType:req.body.SearchTypes,
Term:req.body.term
};
//var vas = JSON.stringify(response);
var search = req.body.SearchTypes;
var term = req.body.term;
var query = connection.query('Select * from ?? where Lable = ?', [search, term], function(err, rows) {
res.write(rows);
});
console.log(query.sql);
res.end();
})
//}).listen(8081);
http.createServer(app).listen(8081);
console.log('Server running at http://127.0.0.1:8081/');
ich res.write(rows);
-res.end(rows);
geändert, aber hat nicht funktioniert. Kann mir jemand helfen, dieses Problem zu lösen?
Ihr Datenbankaufruf ist asynchron. Sie rufen 'end()' auf, bevor Sie versuchen zu schreiben. – Antiga