1 mooncakejs 2017-11-01 10:33:15 +08:00 pm-docker, 捕获未捕获的异常可以用 socket.on('error'),也可以在 process.on() 反代 nodejs 除了包一层 https,静态文件,负载均衡, 没啥好处 |
![]() | 2 janxin 2017-11-01 10:50:30 +08:00 参考其他语言方案即可 |
![]() | 3 hronro 2017-11-01 10:51:43 +08:00 可以用 pm2 |
![]() | 4 pigzilla 2017-11-01 11:01:34 +08:00 ![]() try catch 只能捕获同步代码部分的问题,异步代码要按异步的风格处理,比如 on('error')之类的,或者 promose 的.catch()。 |
![]() | 5 chairuosen 2017-11-01 11:03:52 +08:00 pm2 |
6 youxiachai 2017-11-01 11:41:35 +08:00 反代..可以跑好几个不同端口的 nodejs 程序啊... |
![]() | 7 otakustay 2017-11-01 12:07:02 +08:00 ![]() 终于,nodejs 成了语言 |
![]() | 8 libook 2017-11-01 12:08:08 +08:00 ![]() 公司使用 Node.js 三年多了,用户量在千万级别,稳定性和 Java 等其他语言没啥区别,瓶颈在写程序的人,如果人的技术不够扎实或者习惯不够好,服务就会经常出问题。 Node.js 技术栈是异步思维为主,和很多同步思维的程序和框架不同,建议不要用其他技术栈的思维来做 Node.js 项目,费力不讨好。 Nginx 反向代理是否有好处要看具体需求,旨在通过利用 Nginx 的特性来使用 Node.js 的长处来弥补其短处。比如去状态化的 API 设计加 Nginx 负载均衡再加多 Node.js 实例来饱和硬件利用率;又比如用 Nginx 来管理静态文件,同时代理 Node.js 的动态 API,能充分利用 Nginx 对静态文件服务的优化来提升整体网站的速度;再如一台服务器上绑定多个域名指向多个不同的 Node.js 微服务,Nginx 可以做域名和 location 的路由。 |
![]() | 9 libook 2017-11-01 12:12:02 +08:00 @otakustay 如果 Oracle Java 和 OpenJDK Java 因为特性有区别算是两种语言的话,我个人觉得说 Node.js 是一种语言也算勉强成立,毕竟 Node.js ECMA Script 和 Babel ECMA Script 虽说都是 ECMA Script 的实现但多多少少还是有些区别的。 |
![]() | 10 whypool 2017-11-01 12:21:07 +08:00 难点在异常捕获,由于是异步回调,如果出异常简单暴力就是 process.exit(1),所以直接就挂了 |
![]() | 11 my3157 2017-11-01 12:24:36 +08:00 nginx + pm2 |
12 iceheart 2017-11-01 12:55:34 +08:00 via Android 还没开始选型的话,就别选 nodejs 了. server 端推荐 golang. 做过简单测试,同样功能的程序,go 语言的内存占用大概是 node 的 1/3,处理并发数要比 node 高得多。 并且,代码逻辑也比 node 清晰,部署维护也比 node 简单。 |
![]() | 13 WittBulter 2017-11-01 13:00:12 +08:00 via iPhone @iceheart 可惜社区和第三方库是硬伤 |
![]() | 14 learnshare 2017-11-01 13:01:37 +08:00 Node.js 应该算是 Javascript 运行环境吧 |
15 wxt 2017-11-01 13:10:07 +08:00 via Android 坑多,一个合作伙伴整个前端模块化,好几十个 node 应用部署在一台机器上,出了问题,他们每次都要找研发。 |
![]() | 16 wwdyy 2017-11-01 13:11:58 +08:00 node 不是语言,谢谢 |
![]() | 17 shuangguanQuail 2017-11-01 14:09:17 +08:00 process.on('uncaughtException'),相当于一个全局的异常捕获器,保证你的程序不挂掉。 |
![]() | 18 a251922581 OP @iceheart golang 是不是相对和 C 语言接近一点?学起来比 nodejs 要难一些吧.. |
![]() | 19 isbase 2017-11-01 16:28:02 +08:00 先定义好一个兜底的错误处理中间件,将捕获到的错误传给它 |
20 iceheart 2017-11-01 18:41:39 +08:00 via Android @a251922581 golang 很容易上手,比 c 还简单,网上看两天文档就差不多能开搞了。官方的基础库也够用,go 的协程很方便。 |
![]() | 22 lianyue 2017-11-01 18:57:52 +08:00 via iPhone es6 可以直接 捕获 异步代码 async await 多用 就好了 用 koa 做 http 服务器 |
![]() | 23 shiny 2017-11-01 19:01:23 +08:00 阿里 eggjs 框架值得参考,比如你说的异常处理问题在框架层面的处理 https://eggjs.org/zh-cn/core/error-handling.html |
![]() | 24 vance 2017-11-01 20:39:34 +08:00 http://taobaofed.org/blog/2016/03/18/error-handling-in-koa/ 淘宝前端 KOA 框架异常处理 |
![]() | 25 nazor 2017-11-01 20:55:43 +08:00 第一次看见写 JS 的来吐槽 Go 难写。 吃惯屎的,偶然吃一下饭肯定会不适应。 |
![]() | 27 iRiven 2017-11-02 09:21:47 +08:00 via Android js 用在服务端还是难受,不知道为什么,可能 js 本身就没有想的那么好吧 |
![]() | 28 looplj 2017-11-02 09:56:54 +08:00 不推荐 Node,Go 更好 |