如何解决简单的HXR请求返回mysql响应
我试图一劳永逸地解决客户端与服务器之间的异步交互!我一直在为这个问题绊脚石,我需要了解它。
这是我的绊脚石:
我有一个简单的nodeJS文件,该文件应在端口8080上侦听并以mySQL查询的结果进行响应。在这里:
const MysqL = require('MysqL');
const http = require('http');
const Promise = require('promise');
const con = MysqL.createConnection({
host: "localhost",user: "user",password: "password",database: "database"
});
const queryDatabase = (query = "SELECT * FROM users") => new Promise( (resolve,reject) => {
try {
con.connect( (err) => {
if (err) throw(err);
else {
con.query(query,(err,result,fields) => {
if (err) throw(err);
resolve(JSON.stringify(result));
})
}
})
} catch(err) {
reject(err);
}
})
http.createServer( async (req,res) => {
res.writeHead(200,{'Content-Type': 'text/html'});
// res.write(req.url);
res.write('here are your results: ',await queryDatabase());
res.end();
}).listen(8080);
运行此文件并将其指向浏览器时,我收到消息“这是您的结果:”,但没有结果。
我知道这是一个非常简单的问题,我将一遍又一遍地遇到。
如果有人能提供此代码工作的简单示例,或者使我指向相关的阅读领域,我将非常感激。
谢谢
丹。
解决方法
请参见https://nodejs.org/api/http.html#http_response_write_chunk_encoding_callback。
签名是:
response.write(chunk[,encoding][,callback])
似乎您将查询结果用作encoding
而不是chunk
。尝试类似的东西:
res.write('here are your results: ' + await queryDatabase());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。