最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

节点快递:API使用异步等待

IT培训 admin 4浏览 0评论

节点/快递:API使用异步等待

我是新来的节点,如果我在我的异步的使用方向是正确的也得走不知道/等待在API的设计。

目前,这仅仅是一个MVP的项目,但我感兴趣的是学习的好模式。

堆栈:节点,快速,MySQL的(使用mysql2包)

以下是我的终点的简化版本,应该给你的我在做什么的想法:

  createUser = async (req, res) => {
    const name = req.body.name;
    const email = req.body.email;

    let query = 'insert into Users set name = ?, email = ?';
    const values = [name, email];
    query = mysql.format(query, values);

    let result;

    // in the project, this is abstracted
    try {
      const [rows] = await this.dbPool.execute(query);
      // do something with the result of the query. simplified eg:
      result = rows.insertId;
    } catch (err) {
      // handle error and assign appropriate value to result
    }

    res.send(result);
  };

上面的代码做什么,我想这样做,但我不知道如果我犯在哪个端点与数据库交互的方式一个新手的错误,那会咬我的未来。 (的情况下,不知道是什么我不知道。)我不是找一般的编码最佳实践(上面的代码简化)虽然他们的欢迎。

回答如下:

这是最好把所有的代码,可能会导致try块中的错误。

有没有必要result临时变量。 res.send(rows.insertId)可以直接try块里面放,因为任何误差以外不会被一个中间件处理,并且将导致在悬浮请求:

  createUser = async (req, res) => {
    try {
    const name = req.body.name;
    const email = req.body.email;

    let query = 'insert into Users set name = ?, email = ?';
    const values = [name, email];
    query = mysql.format(query, values);

      const [rows] = await this.dbPool.execute(query);
      // do something with the result of the query. simplified eg:
      res.send(rows.insertId);
    } catch (err) {
      // handle error and assign appropriate value to result
    }
  };

在其他方面,它已经足够好了。

节点/快递:API使用异步等待

我是新来的节点,如果我在我的异步的使用方向是正确的也得走不知道/等待在API的设计。

目前,这仅仅是一个MVP的项目,但我感兴趣的是学习的好模式。

堆栈:节点,快速,MySQL的(使用mysql2包)

以下是我的终点的简化版本,应该给你的我在做什么的想法:

  createUser = async (req, res) => {
    const name = req.body.name;
    const email = req.body.email;

    let query = 'insert into Users set name = ?, email = ?';
    const values = [name, email];
    query = mysql.format(query, values);

    let result;

    // in the project, this is abstracted
    try {
      const [rows] = await this.dbPool.execute(query);
      // do something with the result of the query. simplified eg:
      result = rows.insertId;
    } catch (err) {
      // handle error and assign appropriate value to result
    }

    res.send(result);
  };

上面的代码做什么,我想这样做,但我不知道如果我犯在哪个端点与数据库交互的方式一个新手的错误,那会咬我的未来。 (的情况下,不知道是什么我不知道。)我不是找一般的编码最佳实践(上面的代码简化)虽然他们的欢迎。

回答如下:

这是最好把所有的代码,可能会导致try块中的错误。

有没有必要result临时变量。 res.send(rows.insertId)可以直接try块里面放,因为任何误差以外不会被一个中间件处理,并且将导致在悬浮请求:

  createUser = async (req, res) => {
    try {
    const name = req.body.name;
    const email = req.body.email;

    let query = 'insert into Users set name = ?, email = ?';
    const values = [name, email];
    query = mysql.format(query, values);

      const [rows] = await this.dbPool.execute(query);
      // do something with the result of the query. simplified eg:
      res.send(rows.insertId);
    } catch (err) {
      // handle error and assign appropriate value to result
    }
  };

在其他方面,它已经足够好了。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论