Nea*_*ers 7 shared-libraries node.js async-await
NPM 和 GitHub上的文档没有显示如何在建立连接时捕获异常。我是根据查询方法的工作原理猜测的。那么作为新库的新手,我是否必须阅读代码才能弄清楚它?或者我缺少一些常见的标准做法吗?我故意输入了错误的密码只是为了测试错误处理。
我应该尝试/捕获,还是期望返回一个 err 对象?如果它们在查询方法上返回 err 对象而不是在连接方法上返回 err 对象,是否不一致?
使用 Amazon AWS Aurora 作为数据存储。
const mysql = require('mysql2/promise'); 获取数据();
async function GetData() {
const config = require("config");
const dbConfig = config.get('AWS.Database01TestErr');
console.log ("const dbConfig:");
console.dir(dbConfig, { depth: null });
const [errConn, connection] = await mysql.createConnection(dbConfig);
if (errConn) throw errConn;
mysql.createConnection(dbConfig);
console.log ("Got the database connection");
//query = "select ID, user_nicename, user_email from wp_users where user_login = 'hebgadmin' ";
query = "select ID, user_nicename from wp_users limit 3 ";
console.log ("Starting query");
const [rows, fields, err] = await connection.query (query);
if (err) throw err;
// console.log(rows);
console.log("Show Data Retrieved");
rows.map(e=>{
console.log("ID="+ e.ID + " NiceName=" + e.user_nicename);
})
console.log ("The end");
process.exit(); // Else Node hangs and must hit cntl-break to exit
}
Run Code Online (Sandbox Code Playgroud)
部分输出:
(节点:2836)UnhandledPromiseRejectionWarning:错误:用户'adm test1'@'10.1.2.123'(使用密码:YES)在Object.createConnection(D:\ Project2 \ POC \ node_modules \ mysql2 \ promise .js:223)的访问被拒绝:31) 在 GetData (D:\Project2\POC\mySqlQuery_V3_Await.js:34:44)
是的 try...catch 是 async/await 的模式
这是 mdn,其中有一些关于错误的讨论:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function
这是 mongodb 文档中的类似代码,显示 try...catch:
http://mongodb.github.io/node-mongodb-native/3.2/reference/ecmascriptnext/crud/
| 归档时间: |
|
| 查看次数: |
6902 次 |
| 最近记录: |