微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

简单的HXR请求返回mysql响应

如何解决简单的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 举报,一经查实,本站将立刻删除。