使用 tsx 运行基本 Express 服务器会导致内存不足错误

问题描述 投票:0回答:1

我有一个非常基本的

express.js
服务器,当我运行
tsx server.ts
时,它会导致节点进程快速达到超过 8GB 内存并开始进行交换。

代码

import express from 'express';

const app = express();

app.get('/', (req, res) => {
    if (req.query.name) {
        res.send(`Hello ${req.query.name}`);
    } else {
        res.send('Hello World');
    }
});


app.listen(3000, () => {
    console.log('Server started')
});


我通过

tsx
运行的所有应用程序都会发生这种情况,尽管如果我运行普通节点应用程序说
node server.js
或者我使用
node dist/server.js
运行上述内容,并且使用少于
tsx
并且我不会退出内存错误。内存一般保持在200MB以下。

我尝试在命令和

--max-old-space-size=4096
环境变量中设置
NODE_OPTIONS

node.js typescript memory-leaks out-of-memory tsx
1个回答
0
投票

tsx 中的 Node v20.0.0 存在问题,这会导致内存泄漏,就像您所描述的那样。它已在 Node v20.1.0 中修复,因此您应该升级到该版本,或者最好升级到当前的长期支持版本(撰写本文时为 v22)。

© www.soinside.com 2019 - 2024. All rights reserved.