NodeJS是大型服务器端应用程序的良好框架/代码库吗?
这个问题有点主观,但我包含了解决大型项目中 node 实际问题的实际客观点.
在项目上工作一段时间后更新:
它最好是作为一个前端/API服务器,它是I/O绑定的(大多数前端/API服务器都是).如果您有后端计算需求(处理等)它可以与其他技术(C#net core、go、Java等……工作 node )配对
我创建了这个项目作为一个示例,演示了大多数要点——Sane Node Development:
NodeJS不是构建在自己的http服务器之上的.它构建在V8 chrome javascript引擎之上,不采用http服务器.有一个内置的http模块以及流行的express web server,但也有套接字模块(以及socket.io).它不仅仅是一个http服务器.
单线程不会造成瓶颈,因为所有I/O都是事件式的、异步的.这个链接很好地解释了这一点:http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/
至于软件模块,你可以在npm registry搜索.经常查看有多少其他人使用它(下载),并访问github repo,查看它是否正在积极维护(或者是否存在一系列从未引起注意的问题).
关于"大型项目",我发现对理智发展至关重要的是:
Compile time support (and intellisense):在编译时查找问题.如果你不认为你像我刚开始时那样需要这个,你会在第一次大的重构后改变主意.
Eliminate Callback Hell:保持关键性能(如上所述),但消除回调代码.使用async/await编写线性代码并保持异步性能.与promise 相结合,但比仅使用promise 要好得多.
Tooling:有很多 Select ,但我发现最好的是Typescript(今天的ES6/7)、VS Code(intellisense)、Mocha(单元测试).
Instrumentation/Logging:通过跟踪和检测深入了解应用程序至关重要.
Build on well vetted frameworks:我以express为例,但这是一种偏好,还有其他偏好.