Node.js &引用;错误:接收到的数据包顺序错误。”;连接到无服务器aurora时
我正在实现一个web应用程序,它调用lambda函数从数据库获取数据。Node.js &引用;错误:接收到的数据包顺序错误。”;连接到无服务器aurora时,node.js,aws-lambda,amazon-aurora,aws-sdk-js,Node.js,Aws Lambda,Amazon Aurora,Aws Sdk Js,我正在实现一个web应用程序,它调用lambda函数从数据库获取数据。 我选择了无服务器Aurora并编写了一个代码,但在查询方法中得到了异常“Error:receivedpacket in the Error sequence.” 我在谷歌上搜索了这个问题,但几乎所有问题都太老了。 一篇文章说这是浏览的问题,但我不使用它。 我正在使用带有typescript的无服务器框架 const mysql=require('serverless-mysql')({ 配置:{ 主机:process.env
我选择了无服务器Aurora并编写了一个代码,但在查询方法中得到了异常“Error:receivedpacket in the Error sequence.” 我在谷歌上搜索了这个问题,但几乎所有问题都太老了。
一篇文章说这是
浏览的问题,但我不使用它。
我正在使用带有typescript的无服务器框架
const mysql=require('serverless-mysql')({
配置:{
主机:process.env.DB_主机,
数据库:process.env.DB_NAME,
用户:process.env.DB_用户,
密码:process.env.DB_password
}
});
导出异步函数查询(sql:string,param?:Array):Promise{
const results=await mysql.query(sql.catch)(e=>{
console.log(e);//错误:以错误的顺序接收数据包
抛出新错误(e);
});
等待mysql.end();
返回结果;
}
以下内容也不起作用
export async function query(sql: string, param?: Array<string>): Promise<any> {
const connQueryPromisified = util
.promisify(connection.query)
.bind(connection);
const result = await connQueryPromisified(sql, param)
.then(row => {
console.log(row);
return row;
})
.catch(err => {
console.log(err); // getting Error: Received packet in the wrong sequence
throw err;
});
return result;
}
tsconfig.json
{
"compilerOptions": {
"lib": [
"es2017"
],
"moduleResolution": "node",
"sourceMap": true,
"target": "es2017",
"outDir": "lib"
},
"exclude": [
"node_modules"
]
}
我只想查询从无服务器Aurora获取的记录。
有人能帮我吗?发生这种情况的原因是Webpack(在生产模式下)正在将您的代码放入最小化器,而无服务器mysql
使用的mysql
模块与最小化不兼容
您可以在此处看到问题:。对于依赖函数名进行代码构建的节点模块来说,这是一个非常常见的问题,因为丑八怪/迷你们试图通过将函数名更改为单个字母来混淆/节省空间
最简单的修复方法是通过添加以下内容来关闭网页包配置中的最小化:
optimization: {
minimize: false
}
在链接的问题中有一些关于配置各种其他最小化插件(如terser)以避免名称损坏的讨论,这将允许您在需要时获得最小化的一些好处
{
"compilerOptions": {
"lib": [
"es2017"
],
"moduleResolution": "node",
"sourceMap": true,
"target": "es2017",
"outDir": "lib"
},
"exclude": [
"node_modules"
]
}
optimization: {
minimize: false
}