node js使用连接池和多个参数在mysql中调用存储过程

时间:2019-12-29 17:59:47

标签: mysql node.js stored-procedures

db.js

const mysql = require('mysql');

const connection = mysql.createPool({
  host: 'localhost',
  user : 'xxxxx',
  password : 'xxxxx',
  database : 'xxxx'
})
module.exports = connection;

customer.js

const db = require("../../db");

在customer.js中,我需要调用mysql的SP,它将采用10个输入参数,因为它将在表中插入一条记录。 使用db.js函数从customer.js调用SP的最佳方法是什么

1 个答案:

答案 0 :(得分:0)

我将像这样创建数据库类

let pool;

async function setConnectionPool() {
  if (!pool) {
    pool = await sql.connect("connectionstring here");
  }

  sql.on("error", err => {
    logger.error("An error has occured while setting connection pool", err);
    throw error;
  });
}

async function save(entity) {
  try {
    await pool.request()
      .input("SomeId1", sql.VarChar(50), entity.field1)
      .execute("SomeProcedureName");
  } catch (error) {
     console.log("error", error);
  }
}

module.exports = save;

您可以从customer.js中简单地调用方法save

希望这会有所帮助。