NPM和GitHub上的文档没有显示如何在建立连接时捕获异常。我在猜测,根据查询方法的工作原理。那么,作为一个新图书馆的新手,我必须阅读代码来弄清楚它吗?还是我缺少了一些常见的标准做法?我故意输入了一个坏密码,只是为了测试错误处理。
我应该执行try/catch,还是期望返回一个err对象?如果他们在查询方法上返回一个err对象,而不是在连接方法上返回一个err对象,这是不一致的吗?
使用亚马逊AWS极光作为数据存储。
常量mysql=require('mysql2/promise');GetData();
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
}
部分输出:
(节点:2836)UnhandledPromiseRejectionWarning:错误:在Object.CreateConnection(D:\Project2\poc\node_module\mysql2\promise.js:223:31)在GetData(D:\Project2\poc\mysqlQuery_V3_await.js:34:44)拒绝用户'admtest1'@'10.1.2.123'(使用密码:YES)的访问
是的...try...catch是带有Async/Await的模式
下面是mdn,它对错误进行了一些讨论:
https://developer.mozilla.org/en-us/docs/web/javascript/reference/statements/async_function
下面是显示try...catch的mongodb文档中的类似代码:
http://mongodb.github.io/node-mongodb-native/3.2/reference/ecmascriptnext/crud/
问题内容: 我喜欢Typescript等中提供的新功能的平坦性。但是,我不确定我是否必须在块的外部声明要输入的变量以便以后使用,这一点我不确定。像这样: 如果我错了,请纠正我,但是似乎最好的做法是不要在主体中放置多行业务逻辑,因此,我只剩下在块外声明,在块中分配,以及然后使用它。 在这种情况下,最佳做法是什么? 问题答案: 似乎最好的做法是不要在try主体中放置多行业务逻辑 其实我会说是的。通常,
我正在尝试编写一个测试,它断言用Async/Await和Axios抛出了特定类型的错误。但是,当我运行我的测试时,我得到以下结果。为什么jest不恰当地拒绝我的承诺?谢啦! 错误:expect(received).Rejects.ToThrow() 预期已收到拒绝承诺,但它解析为ValueBR>Data":“Response",”Status":404} api.js: specialerror.
我试图使用express中间件处理错误,在这些行中,我有以下错误 user.js控制器 使用者js模型 app.js 错误 (节点:3304)未经处理的PromisejectionWarning:错误[ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置头。。。 (节点:3304)UnhandledPromiseRejtionWarning:未处理的promise拒绝。这个错误要么
Async/await 是以更舒适的方式使用 promise 的一种特殊语法,同时它也非常易于理解和使用。 Async function 让我们以 async 这个关键字开始。它可以被放置在一个函数前面,如下所示: async function f() { return 1; } 在函数前面的 “async” 这个单词表达了一个简单的事情:即这个函数总是返回一个 promise。其他值将自动被
在第一章节,我们简要介绍了async/.await,并用它来构建一个简单的服务器。本章将更为详细讨论async/.await的它如何工作以及如何async代码与传统的 Rust 程序不同。 async/.await是 Rust 语法的特殊部分,它使得可以 yield 对当前线程的控制而不是阻塞,从而允许在等待操作完成时,其他代码可以运行。 async有两种主要的使用方式:async fn和asyn
用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个coroutine实现异步操作。 为了简化并更好地标识异步IO,从Python 3.5开始引入了新的语法async和await,可以让coroutine的代码更简洁易读。 请注意,async和await是针对coroutin