NestJS集成Stripe实例化后触发V8致命错误求助
NestJS集成Stripe触发V8致命错误求助
运行npm run start:dev后立即出现以下V8致命错误:
npm run start:dev [5:05:11 PM] Starting compilation in watch mode... # # Fatal error in , line 0 # Fatal JavaScript invalid size error 169220804 # # # #FailureMessage Object: 0x16b0c4ac8 1: 0x104e4c0e0 node::NodePlatform::GetStackTracePrinter()::$_3::__invoke() [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 2: 0x105c00f24 V8_Fatal(char const*, ...) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 3: 0x105088114 v8::internal::FactoryBase<v8::internal::Factory>::NewFixedArrayWithFiller(v8::internal::Handle<v8::internal::Map>, int, v8::internal::Handle<v8::internal::Oddball>, v8::internal::AllocationType) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 4: 0x1051eefa8 v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastPackedObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)2>>::GrowCapacity(v8::internal::Handle<v8::internal::JSObject>, unsigned int) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 5: 0x1053c8644 v8::internal::Runtime_GrowArrayElements(int, unsigned long*, v8::internal::Isolate*) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 6: 0x1056eb8ec Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 7: 0x10a222f18 8: 0x10a2273a4 9: 0x10a225370 10: 0x1056d9a7c Builtins_SetPrototypeForEach [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 11: 0x109a6b424 12: 0x109a6a83c 13: 0x109a66d08 14: 0x109a68860 15: 0x109eb710c 16: 0x10567f578 Builtins_InterpreterEntryTrampoline [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 17: 0x10567f578 Builtins_InterpreterEntryTrampoline [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 18: 0x10567f578 Builtins_InterpreterEntryTrampoline [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 19: 0x10567f578 Builtins_InterpreterEntryTrampoline [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 20: 0x10567f578 Builtins_InterpreterEntryTrampoline [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 21: 0x10567f578 Builtins_InterpreterEntryTrampoline [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 22: 0x1056b0d4c Builtins_GeneratorPrototypeNext [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 23: 0x10567f578 Builtins_InterpreterEntryTrampoline [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 24: 0x1057339d8 Builtins_PromiseFulfillReactionJob [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 25: 0x1056a0f54 Builtins_RunMicrotasks [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 26: 0x10567d244 Builtins_JSRunMicrotasksEntry [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 27: 0x1050407b4 v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 28: 0x105040be8 v8::internal::(anonymous namespace)::InvokeWithTryCatch(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 29: 0x105040cd4 v8::internal::Execution::TryRunMicrotasks(v8::internal::Isolate*, v8::internal::MicrotaskQueue*, v8::internal::MaybeHandle<v8::internal::Object>*) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 30: 0x105063438 v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 31: 0x105063bd0 v8::internal::MicrotaskQueue::PerformCheckpoint(v8::Isolate*) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 32: 0x104d34c48 node::InternalCallbackScope::Close() [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 33: 0x104d347c4 node::InternalCallbackScope::~InternalCallbackScope() [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 34: 0x104df1af0 node::fs::FileHandle::CloseReq::Resolve() [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 35: 0x104e06ce4 node::fs::FileHandle::ClosePromise()::$_0::__invoke(uv_fs_s*) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 36: 0x104deb37c node::MakeLibuvRequestCallback<uv_fs_s, void (*)(uv_fs_s*)>::Wrapper(uv_fs_s*) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 37: 0x10565da94 uv__work_done [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 38: 0x105661244 uv__async_io [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 39: 0x105672de4 uv__io_poll [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 40: 0x1056616d4 uv_run [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 41: 0x104d356c0 node::SpinEventLoop(node::Environment*) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 42: 0x104e28800 node::NodeMainInstance::Run(int*, node::Environment*) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 43: 0x104e284ec node::NodeMainInstance::Run() [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 44: 0x104dc0370 node::Start(int, char**) [/Users/cesargomez/.nvm/versions/node/v16.20.2/bin/node] 45: 0x19ce14274 start [/usr/lib/dyld] [1] 80633 trace trap npm run start:dev
相关代码文件
模块文件
import { Module } from '@nestjs/common'; import { PaymentsService } from './payments.service'; import { PaymentsController } from './payments.controller'; @Module({ controllers: [PaymentsController], providers: [PaymentsService], }) export class PaymentsModule {}
控制器文件
import { Controller, Get, Post } from '@nestjs/common'; import { PaymentsService } from './payments.service'; import { ApiTags } from '@nestjs/swagger'; @ApiTags('Payment Integration') @Controller('payments') export class PaymentsController { constructor(private readonly paymentsService: PaymentsService) {} @Post('create-payment-session') createPaymentSession() { return 'createPaymentSession'; } @Get('success') success() { return 'Payment successful'; } @Get('cancel') cancel() { return 'Payment cancelled'; } @Get('products') getAllProducts() { return this.paymentsService.getAllProducts(); } @Post('payment-webhook') async stripeWebhook() { return 'stripeWebhook'; } }
服务文件
import { Injectable } from '@nestjs/common'; import Stripe from 'stripe'; @Injectable() export class PaymentsService { private readonly stripe = new Stripe(process.env.STRIPE_API_SECRET_KEY, { apiVersion: '2024-09-30.acacia', }); async getAllProducts() { const products = await this.stripe.products.list(); return products.data; } }
已尝试的无效解决方法
- 更换多个Node.js版本:16.0.0、16.20.2、18.16.0、18.17.1
- 增加内存限制启动:
NODE_OPTIONS="--max-old-space-size=8192" npm run start:dev
额外测试结果
新建空白NestJS项目集成相同Stripe代码,运行npm run start:dev无任何警告或错误,推测问题源于现有项目的其他依赖冲突,但不知如何排查,求帮助。
内容的提问来源于stack exchange,提问作者Cesar Gomez
相关产品推荐
相关产品推荐

