【发布时间】:2019-02-08 21:13:19
【问题描述】:
我是 node 新手,想知道我在 API 设计中使用 async/await 是否朝着正确的方向前进。
目前这只是一个 MVP 项目,但我有兴趣学习好的模式。
堆栈:Node、Express、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);
};
上面的代码做了我想做的事,但我想知道我是否在 endpoint 与 db 交互的方式上犯了一个菜鸟错误,这会在将来咬我。 (不知道我还不知道的情况。)我不是在寻找一般的编码最佳实践(上面的代码是简化的),尽管他们是受欢迎的。
【问题讨论】:
-
“更好” 怎么样?如果它已经过测试并且可以正常工作,那么问题是什么?
-
这可能更适合Code Review。
-
@jonrsharpe 我已经编辑了我的问题;希望这会减少我正在寻找的东西。
-
我建议您使用 ORM,而不是创建原始查询。我正在使用
Objection.js(使用Knex.js查询生成器),我很高兴