- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在实现一个 Web 应用程序,它调用 lambda 函数从数据库中获取数据。
我选择了Serverless Aurora并写了一个代码,但我得到了异常"Error: Received packet in the wrong sequence."
在查询方法中。
我用谷歌搜索了这个问题,但几乎所有问题都太旧了。
有文章说是browisify
的问题但我不使用它。
我正在使用带有 typescript 的无服务器框架。
const mysql = require('serverless-mysql')({
config: {
host: process.env.DB_HOST,
database: process.env.DB_NAME,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD
}
});
export async function query(sql: string, param?: Array<string>): Promise<any> {
const results = await mysql.query(sql).catch(e => {
console.log(e); // Error: Received packet in the wrong sequence
throw new Error(e);
});
await mysql.end();
return results;
}
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;
}
export async function query(sql: string, param?: Array<string>): Promise<any> {
const params: aws.RDSDataService.Types.ExecuteSqlRequest = {
awsSecretStoreArn: '***',
dbClusterOrInstanceArn: '***',
database: '***',
schema: '***',
sqlStatements: sql
};
console.log(params);
try {
const rdsService = new aws.RDSDataService({
apiVersion: '2018-08-01',
region: 'ap-northeast-1'
});
return rdsService
.executeSql(params)
.promise()
.then(d => {
return d;
})
.catch(e => {
throw new Error(e);
});
} catch (err) {
console.log(err); // nothing to say
throw new Error(err);
}
}
webpack.config.js
const path = require('path');
const slsw = require('serverless-webpack');
module.exports = {
mode: slsw.lib.webpack.isLocal ? 'development' : 'production',
entry: slsw.lib.entries,
devtool: 'source-map',
resolve: {
extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'],
},
output: {
libraryTarget: 'commonjs',
path: path.join(__dirname, '.webpack'),
filename: '[name].js',
},
target: 'node',
module: {
rules: [
// all files with a `.ts` or `.tsx` extension will be handled by `ts-loader`
{ test: /\.tsx?$/, loader: 'ts-loader' },
],
},
};
tsconfig.json
{
"compilerOptions": {
"lib": [
"es2017"
],
"moduleResolution": "node",
"sourceMap": true,
"target": "es2017",
"outDir": "lib"
},
"exclude": [
"node_modules"
]
}
最佳答案
发生这种情况的原因是因为 Webpack(在生产模式下)正在将您的代码通过最小化器,而 mysql
serverless-mysql
的模块正在使用与最小化不兼容。
您可以在此处查看问题:https://github.com/mysqljs/mysql/issues/1655 .对于依赖函数名称来进行代码构建的 Node 模块来说,这是一个很常见的问题,因为丑陋器/缩小器试图通过将函数名称更改为单个字母来混淆/节省空间。
最简单的解决方法是通过添加以下内容来关闭 webpack 配置中的最小化:
optimization: {
minimize: false
}
关于node.js - "Error: Received packet in the wrong sequence."连接无服务器极光时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55988989/
以下是我用于创建 RDS 实例的 CFD 脚本。我正在尝试创建与 PostgreSQL 兼容的 Amazon Aurora,但遇到:无效存储类型:gp2 错误。 SnapshotRDSDBInst
我有如下表 |001000900|aaaaa BELLOWS CORPORATION||N| |001000905|ddddd DEPARTMENT OF LABOR AND EMPLOYMENT S
我在 AWS 中的 Aurora 数据库实例上执行 GRANT 语句时遇到此错误: The MySQL server is running with the --read-only option so
看看这个链接 https://staging.crowdyhouse.com/product-category/home-accessories/ 产品数量为 37,即 36(每页产品数量)+ 1 此
我是一名优秀的程序员,十分优秀!