首先为什么使用 nodejs?
就像某人说的:别人选择用 nodejs 或 Golang,是根据业务,而我选择 nodejs 是因为我仅仅会写js....
在入坑 nodejs 写后端前,肯定会去谷歌一番 node 的性能咋样啦,类似 nodejs vs php Or vs go 性能测试等;搜索结果呢会有许多说它性能很好的,也有说性能不足php的,而且各自都有自己的性能测试....
然后也会发现很多有趣的便见,下面罗列一下:
一. nodejs 因为 js 这门超级灵活的语言不适合写大型项目
解决方案: 上 typescript
二. nodejs 性能不行,并发上不来,延迟大。这里的性能应该指的是 cpu 密集型计算。
解决方案:水平扩展机器 + 将 cpu 密集型计算放到另一个服务上转化为网络 io 调用啊(具体这个服务怎么写,仁者见仁)
三. 数据库并发上不来。
解决方案:这个和 nodejs 没啥关系吧……
全网搜来搜去,大概就上面的问题。看完,用 nodejs 写后端还是问题么
再来列举 nodejs 写后端的好处吧(仅限于对前端来说) 一. 学习进步,更上一层楼;了解后端,才能更好写前端嘛 二. 给了前端同学一个轻松写后端的机会 三. 前后端类型/代码共享 四. 天然的 web 支持(比如用 websocket 超简单)
总结来说,写后端,如果你熟悉 php,那就 php,听说nodejs 好,噗嗤噗嗤的去学 js,es6, npm,webpack, babel等等的,在没用 nodejs 写业务前,就已经精疲力尽了....
当我说 nodejs 适合写后端的时候,是因为我仅仅会前端。不想去学go写后端,因为在用go写后端前,学习go 已经让我精疲力尽了。
不熟悉才会说不合适,没有绝对的不行,其实都可以解决问题。