我有一个函数onRequest(request,response),它包含一个回调函数。当我尝试在回调函数中使用响应对象(即response.write())打印数据时,它不打印。但是使用console.log()在控制台上打印相同的数据请帮助解决为什么response.write()不起作用。
var http = require("http");
var _mysql = require("mysql");
function onRequest(request, response) {
console.log("Request received.");
response.writeHead(200, {
"Content-Type": "text/plain"
});
response.write("Hello World");
var _mysql = require('mysql');
var HOST = 'localhost';
var PORT = 3306;
var MYSQL_USER = 'root';
var MYSQL_PASS = 'root';
var DATABASE = 'library_management';
var TABLE = 'book_details';
var mysql = _mysql.createConnection({
host: HOST,
port: PORT,
user: MYSQL_USER,
password: MYSQL_PASS,
});
mysql.query('use ' + DATABASE);
mysql.query('select * from ' + TABLE + ' where price < 1212',
function(err, result, fields) {
if (err) throw err;
else {
console.log('Books less than 1212');
for (var i in result) {
var book = result[i];
response.write("Hello");
console.log(book.title + ':' + book.price);
//above is working
response.write(book.title + ':' + book.price);
//above is not working...why?
}
}
});
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
答案 0 :(得分:2)
您的回复很可能已经end
编辑。
尝试
mysql.query('select * from ' + TABLE + ' where price < 1212',
function(err, result, fields) {
if (err) throw err;
else {
console.log('Books less than 1212');
for (var i in result) {
var book = result[i];
response.write("Hello");
console.log(book.title + ':' + book.price);
//above is working
response.write(book.title + ':' + book.price);
//above is not working...why?
}
response.end();//don't end response until data is written
}
});