与无服务器结合使用时,NestJs Body() 不会填充请求信息
NestJs Body() is not populating with request information when coupled with serverless
当 运行 SLS Offline 或 SLS Deploy 时,nest 中的主体装饰器未填充传递的对象。
我已经收集了一个小的 repo 来为任何感兴趣的人调查这个问题。
https://gitlab.com/claridgicus/nest-serverless-body-issue
SLS 离线输出
[Nest] 91880 - 2019-04-24 20:58 [ExceptionHandler] Map#toJSON isn't generic +5ms
TypeError: Map#toJSON isn't generic
at String.toJSON (c:\Users\Claridgicus\AppData\Roaming\npm\node_modules\serverless\node_modules\core-js\modules\_collection-to-json.js:6:38)
at Function.<anonymous> (c:\Users\Claridgicus\AppData\Roaming\npm\node_modules\serverless\node_modules\core-js\modules\_ctx.js:18:15)
at JSON.stringify (<anonymous>)
at Function.stringify [as default] (c:\Users\Claridgicus\code\serverless-nestjs-master\node_modules\fast-safe-stringify\index.js:11:18)
at ModuleTokenFactory.getDynamicMetadataToken (c:\Users\Claridgicus\code\serverless-nestjs-master\node_modules\@nestjs\core\injector\module-token-factory.js:20:69)
at ModuleTokenFactory.create (c:\Users\Claridgicus\code\serverless-nestjs-master\node_modules\@nestjs\core\injector\module-token-factory.js:12:27)
at ModuleCompiler.compile (c:\Users\Claridgicus\code\serverless-nestjs-master\node_modules\@nestjs\core\injector\compiler.js:19:47)
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)
1: std::vector<v8::CpuProfileDeoptFrame,std::allocator<v8::CpuProfileDeoptFrame> >::vector<v8::CpuProfileDeoptFrame,std::allocator<v8::CpuProfileDeoptFrame> >
2: v8::internal::wasm::SignatureMap::Find
3: v8::internal::Builtins::CallableFor
4: v8::internal::Builtins::CallableFor
5: v8::internal::Builtins::CallableFor
6: 0000006B886843C1
所以
经过大量探索 - 我仔细检查了传入请求
中的 headers
关于来自美联储的传入 POST 请求 - 仔细检查您正在设置 headers - 不像我那样节省几个小时 :)
headers: {
"Content-Type": "application/json"
},
当 运行 SLS Offline 或 SLS Deploy 时,nest 中的主体装饰器未填充传递的对象。
我已经收集了一个小的 repo 来为任何感兴趣的人调查这个问题。
https://gitlab.com/claridgicus/nest-serverless-body-issue
SLS 离线输出
[Nest] 91880 - 2019-04-24 20:58 [ExceptionHandler] Map#toJSON isn't generic +5ms
TypeError: Map#toJSON isn't generic
at String.toJSON (c:\Users\Claridgicus\AppData\Roaming\npm\node_modules\serverless\node_modules\core-js\modules\_collection-to-json.js:6:38)
at Function.<anonymous> (c:\Users\Claridgicus\AppData\Roaming\npm\node_modules\serverless\node_modules\core-js\modules\_ctx.js:18:15)
at JSON.stringify (<anonymous>)
at Function.stringify [as default] (c:\Users\Claridgicus\code\serverless-nestjs-master\node_modules\fast-safe-stringify\index.js:11:18)
at ModuleTokenFactory.getDynamicMetadataToken (c:\Users\Claridgicus\code\serverless-nestjs-master\node_modules\@nestjs\core\injector\module-token-factory.js:20:69)
at ModuleTokenFactory.create (c:\Users\Claridgicus\code\serverless-nestjs-master\node_modules\@nestjs\core\injector\module-token-factory.js:12:27)
at ModuleCompiler.compile (c:\Users\Claridgicus\code\serverless-nestjs-master\node_modules\@nestjs\core\injector\compiler.js:19:47)
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)
1: std::vector<v8::CpuProfileDeoptFrame,std::allocator<v8::CpuProfileDeoptFrame> >::vector<v8::CpuProfileDeoptFrame,std::allocator<v8::CpuProfileDeoptFrame> >
2: v8::internal::wasm::SignatureMap::Find
3: v8::internal::Builtins::CallableFor
4: v8::internal::Builtins::CallableFor
5: v8::internal::Builtins::CallableFor
6: 0000006B886843C1
所以
经过大量探索 - 我仔细检查了传入请求
中的 headers关于来自美联储的传入 POST 请求 - 仔细检查您正在设置 headers - 不像我那样节省几个小时 :)
headers: {
"Content-Type": "application/json"
},