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 1
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 5
终于,nodejs 成了语言
|
8
libook 2017-11-01 12:08:08 +08:00 1
公司使用 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
ZSeptember 2017-11-02 09:56:54 +08:00
不推荐 Node,Go 更好
|