В следующем коде я пытаюсь извлечь данные из базы данных MySQL и показать их пользователю, используя ответную запись. Ошибка, что я получил это Error: write after end
:Узел JS Ошибка: напишите после конца
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/');
Я изменил res.write(rows);
на res.end(rows);
, но не работает. Может кто-то помочь мне решить эту проблему.
Ваш вызов в базе данных асинхронный. Вы вызываете 'end()' перед тем, как попытаетесь написать. – Antiga