通过Node.js访问mysql数据库的最佳实践

WeS*_*eSt 2 mysql node.js

目前,我正在运行带有express的节点js后端,以从客户端访问mysql数据库。现在,我正在重构代码,将来自客户端的“胖”东西也放到nodejs后端。我的第一个想法是保持快速路线如:

模块A:

router.get('/getitem/:code',(req, res) => {
let sql = `SELECT * FROM xyz WHERE CODE = ${req.params.code}`;
let query = db.query(sql, (err, result) =>{
  if(err == null){
    console.log(result);
    res.send(result);
  }else{
    console.log("Error by getting item from db: " + err);
    throw err;
  }
 });
});
Run Code Online (Sandbox Code Playgroud)

并根据需要通过其他模块通过http请求进行访问:

function geodataByLocationcode(locationcode){
 request({
  method: 'GET',
  url: "http://" + server_connection.host + ":" + server_connection.port + '/getitem/' + locationcode,
  headers: {
    "Content-Type": "application/json"
  }
 },function(error, response, body){
 ....
 }
Run Code Online (Sandbox Code Playgroud)

但这是执行此操作的最佳方法吗?还是因为请求现在也来自后端,以更直接的方式访问数据库会更好?

Mar*_*nto 5

您可以找到一个很好的示例,说明如何使用本机驱动程序使用MySql和Node.js(没有任何查询生成器,如knex或ORM,如书架)。

依存关系:

  • expressjs 4.x
  • 的mysql2

expressjs 4.x

核心概念是:

示例:https://github.com/Talento90/organization-api/tree/master/organizations-api/src