在后端使用 node-oracledb 管理来自前端的请求

问题描述

我正在编写一个连接到数据库的新方法,运行 SQL 查询并在每次从前端发出请求时关闭该连接。对于我要运行的每个查询,一次又一次地建立和关闭与数据库的连接。这会影响性能吗?这是正确的方法还是有更好的方法?

app.post('/register',(req,res) =>{
  registerDb().then(resp => {
    res.json({"message" : resp})})
    .catch(err => {
      console.log(err);
    })
})

app.post('/signin',res) => {
  checkAuth(req.body).then(response => {
    res.send(response);
  })
  .catch(err => {
    console.log(err);
  });
})

app.listen(4000);

async function registerDb() {
  let conn;
  try {
    conn = await oracledb.getConnection(config)
    let result = await conn.execute(
      `INSERT INTO "User" VALUES (name,email,id,password,age)`,);
    console.log("Rows inserted: " + result.rowsAffected);  // 1
    console.log("ROWID of new row: " + result.lastRowid);
    return result.rowsAffected;
  } catch (err) {
    console.log('Ouch!',err)
    return err.message;
  } finally {
    if (conn) { // conn assignment worked,need to close
      await conn.close()
    }
  }
}

async function checkAuth(data) {
  let conn;

  try {
  
    conn = await oracledb.getConnection(config)

    let result = await conn.execute(
      `Select name 
      from "User"
      where email = :email and password = :password`,{
        email : {val: data.email},password: {val: data.password}
      }
    );

    return result.rows;

  } catch (err) {
    console.log('Ouch!',need to close
      await conn.close()
    }
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)