我按照 webpack4 示例来设置配置:https : //github.com/serverless-heaven/serverless-webpack/tree/master/examples/babel-webpack-4 因为我收到错误“找不到模块源-地图支持/注册”。
我已经研究了已经创建的问题:
https://github.com/serverless-heaven/serverless-webpack/issues/357
https://github.com/serverless-heaven/serverless-webpack/issues/228
现在我的配置是:
.babelrc{
"comments": false,
"sourceMaps": "both",
"presets": ["env","stage-2"],
"plugins": ["source-map-support"]
}
Run Code Online (Sandbox Code Playgroud)
webpack.config.js:
const path = require('path');
const nodeExternals = require('webpack-node-externals');
const slsw = require('serverless-webpack');
module.exports = {
entry: slsw.lib.entries,
mode: slsw.lib.webpack.isLocal ? 'development' : 'production',
output: {
libraryTarget: 'commonjs2',
path: path.join(__dirname, '.webpack'),
filename: '[name].js',
sourceMapFilename: '[file].map',
},
optimization: {
// We no not want to minimize our code.
minimize: false,
},
performance: {
// Turn off size warnings for …Run Code Online (Sandbox Code Playgroud) node.js webpack serverless serverless-webpack-plugin serverless-offline
我在redis中有以下键:
"542 136 mountain road"
"542 136 mountainview road"
"542136 mountain road"
"542 136 mountain"
"136 mountain road"
"136 mountain"
Run Code Online (Sandbox Code Playgroud)
我想得到包含这个短语的键136 mountain.使用glob样式模式,我目前正在进行4次查询,以满足所有可能的情况.
scan 0 MATCH '*[\ ]136 mountain[\ ]*'
scan 0 MATCH '*[\ ]136 mountain'
scan 0 MATCH '136 mountain[\ ]*'
scan 0 MATCH '136 mountain'
Run Code Online (Sandbox Code Playgroud)
总共这四个查询将返回4个结果:
"542 136 mountain road"
"542 136 mountain"
"136 mountain road"
"136 mountain"
Run Code Online (Sandbox Code Playgroud)
如果有更好的方法来更改模式字符串,请分享您的输入,以便可以在单个查询中获得所有4个结果.
我有一个entityType产品并用它来将数据插入DynamoDB使用AWS.DynamoDB.DocumentClient
产品.js:
export class Product {
id: string;
partNumber: string;
createdAt: Date;
}
Run Code Online (Sandbox Code Playgroud)
产品服务.js:
export async function addProduct(request: Product): Product {
try {
if (request.id === undefined) {
request.id = uuid.v4();
}
const params = {
TableName: TABLE_NAME,
Item: request,
};
await dynamoDBClient.put(params).promise();
return request;
} catch (err) {
logger.error(`Error ${err}`);
throw Error(err);
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行流程检查时,我在./src/返回请求
时收到以下错误:
无法返回请求,因为Promise [1]与
Product
[2]
Run Code Online (Sandbox Code Playgroud)
。
即使请求的类型为 Product ,它仍然显示 Promise Error 。我们该如何解决它?
这是我尝试在 Jest 中编写单元测试的方法
async function getParameter(parameter: string,
withDecryption: boolean = false): Promise<String> {
const params = {
Name: parameter,
WithDecryption: withDecryption,
};
try {
const request = await ssmClient.getParameter(params).promise();
return request.Parameter.Value;
} catch (err) {
logger.error(`Error ${err}`);
throw Error(err);
}
}
Run Code Online (Sandbox Code Playgroud)
测试方法 :
test('getParameterFromSystemManager', async () => {
const mockedResponseData = {
Parameter: {
Value: 'parameterValue',
},
};
ssmClient.getParameter(params).promise = jest.fn();
ssmClient.getParameter(params).promise.mockImplementation(() => Promise.resolve(mockedResponseData));
const data =
await SSMParameters.getParameterFromSystemManager('testurl', false,
'Test', 'elastic');
expect(data).toEqual(mockedResponseData.Parameter.Value);
expect(ssmClient.getParameter).toHaveBeenCalledTimes(1);
});
Run Code Online (Sandbox Code Playgroud)
我收到错误:
类型错误:ssmClient.getParameter(...).promise.mockImplementation 不是函数
我们如何在 Jest …
node.js ×3
aws-sdk ×1
aws-sdk-js ×1
flowtype ×1
glob ×1
javascript ×1
jestjs ×1
redis ×1
serverless ×1
ssm ×1
webpack ×1