Nodejs 还差什么?

发布于 1周前 作者 sinazl 来自 nodejs/Nestjs

Nodejs 还差什么?

前几天 nodejs 原作者的新项目闹得沸沸扬扬,有说新的项目能解决什么问题,也有说没什么意义。

现在 nodejs 10.3.0 了,支持 async/await,npm 6.1.0 也加入了脆弱修复等功能。 Nodejs 还差什么呢?

20 回复

node_modules 目录


内存泄漏检测器……

ry 前两天 JSConf 2018 的分享里讲到了啊 http://tinyclouds.org/jsconf2018.pdf
deno 现在就是一个实验项目,目前还看不出来应用场景。

这么一说确实有编码时看不到潜在的问题,而在运行时错误不断的问题,经常遇到。包依赖太深确实也是个问题,但是用 go 的 import 就能解决吗?有提案好,非要另起炉灶确实会让很多人头疼。

还差大公司大项目来踩坑。

感觉差的就是稳定和杀手级框架

异常处理不够优雅

阿里的 eggjs 如何??

完美的配套开发工具。

vscode 上面已经有很多好用的工具了。

babel 转码 debug 就遇到过问题,自己配置的话 lint 和自动补全都很不完美对 es6 不够友好。

阿里的这个正在往这个方向走。不过个人的努力也要看历史的进程。希望能成功

差国内开发者认同?

还差一个静态类型

node_modules 每次删除掉这个目录都要 7、8 分钟,所以每次 npm install 的时候都心疼我的硬盘一下

cnpm 或者 pnpm 走一波?

包管理 异常处理 语言层面最好强类型加编译期检查报错 内存监测

关于“Nodejs还差什么?”这个问题,可以从多个维度来探讨。

首先,从性能角度看,Node.js在单线程模型下,对于CPU密集型任务的处理能力相对较弱。虽然可以通过分解任务或使用多进程(如cluster模块)来优化,但这增加了开发的复杂性。以下是一个简单的cluster模块使用示例:

const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  console.log(`Master ${process.pid} is running`);

  // Fork workers.
  for (let i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('exit', (worker, code, signal) => {
    console.log(`worker ${worker.process.pid} died`);
  });
} else {
  // Workers can share any TCP connection
  // In this case it is an HTTP server
  http.createServer((req, res) => {
    res.writeHead(200);
    res.end('hello world\n');
  }).listen(8000);

  console.log(`Worker ${process.pid} started`);
}

其次,Node.js的可靠性相对较低,一旦代码某个环节崩溃,整个系统都可能崩溃。这需要通过良好的错误处理、监控和重启策略来缓解。

最后,虽然Node.js的生态系统丰富,但开源组件库的质量参差不齐,更新快且可能向下不兼容,这要求开发者在选择和使用时需要谨慎。

回到顶部