在我的库(JavaScript中的Scheme)中,我有一个测试应该失败,因为它计算

有没有办法使NodeJS中的堆栈大小更小?所以我不需要增加阶乘函数的值来溢出堆栈.

EDIT:注意,GitHub上讨论的--stack-size选项可能会使 node 崩溃.我希望有一个堆栈溢出错误,但值小于GitHub0.

推荐答案

您可以使用--stack-size V8选装件(另请参见here).

要查看默认大小,可以选中--v8-options:

$ node --v8-options | grep -B0 -A1 stack-size
  --stack-size (default size of stack region v8 is allowed to use (in kBytes))
        type: int  default: 984

(除了调用和解析node --v8-options之外,我不知道如何通过编程读取默认值或当前值.)

然后可以使用该选项指定新的堆栈大小:

$ node --stack-size=512 index.js

您也可以使用v8.setFlagsFromString从程序本身设置:

const v8 = require('v8');
v8.setFlagsFromString('--stack-size=512');

请注意,在node中使用的V8的较新版本中,可用的V8选项将来可能会更改.js.(例如,我认为这个选项以前被称为stack_size,带有下划线,但现在是stack-size,带有破折号.)如果选项不再存在,您可以使用v8flags package包或以编程方式调用node --v8-options来引发错误,以便调整测试.

Node.js相关问答推荐

MongoServelSelection错误:服务器 Select 在30000 ms后超时

从目录中获取所有文件,而不是NodeJS中的单个文件

如何在MEVN堆栈中结合创建和更新表单流程?

运行本地移动自动化测试时,在onPrepare钩子中,ERROR @wdio/cli:utils: A service failed in the 'onPrepare'

如何使用mongoose引用不在项目中的模型

使用更新版本仍然找到包@angular/fire但不支持原理图

eSignature API 的 NodeJS SDK 是否支持数据流?

如何在mongoose 聚合中执行全文搜索

为什么当我try req.logout() 时出现此错误?

Discord.js V14 interaction.editReply 给出了一个无效的 webhook 令牌错误

使用 .pipe(res) 向客户端发送音频不允许您搜索?

MERN 堆栈项目中的 React [create-react-app] 正在提供依赖项

仅显示用户在 Reactjs 中使用服务器端发布的帖子是 Node Js、Mongodb

Mongoose,如何一次更新多个?

GridFS 大文件下载使 Node.js 服务器崩溃. MongoServerError:排序超出了字节的内存限制

如何从 github 编译第三方扩展?

响应发送 200 而不是 403

在单独的模块中定义 Mongoose 模型

如何让 Mocha 加载定义全局挂钩或实用程序的 helper.js 文件?

用于轻松部署和更新的 Node.js 设置