我为什么向后端工程师推荐NodeJS

如题所述

科普文一则,说说我对Node.js的一些认识,以及我作为前端工程师为什么会向后端工程师推荐Node.js。
“Node.js 是服务器端的 JavaScript 运行环境,它具有无阻塞(non-blocking)和事件驱动(event-driven)等的特色,Node.js 采用V8引擎,同样,Node.js实现了类似 Apache 和 nginx 的web服务,让你可以通过它来搭建基于 JavaScript的Web App。”
我想不仅仅是Node.js,当我们要引入任何一种新技术前都必须要搞清楚几个问题:
我们遇到了什么问题?
这项新技术解决什么问题,是否契合我们遇到的问题?
我们遇到问题的多种解决方案中,当前这项新技术的优势体现在哪儿?
使用新技术,带来哪些新问题,严重么,我们能否解决掉?
我们的问题:Server端阻塞
Node.js被设计用来解决服务端阻塞问题.下面通过一段简单的代码解释何为阻塞:
Js代码:
//根据ID,在数据库中Persons表中查出Name
var name = db.query("select name from persons where id=1");
//进程等待数据查询完毕,然后使用查询结果。
output("name")

这段代码的问题是在上面两个语句之间,在整个数据查询的过程中,当前程序进程往往只是在等待结果的返回.这就造成了进程的阻塞.对于高并发,I/O密集行的网络应用中,一方面进程很长时间处于等待状态,另一方面为了应付新的请求不断的增加新的进程.这样的浪费会导致系统支持QPS远远小于后端数据服务能够支撑的QPS,成为了系统的瓶颈.而且这样的系统也特别容易被慢链接攻击(客户端故意不接收或减缓接收数据,加长进程等待时间)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-30
说说我对Node.js的一些认识,以及我作为前端工程师为什么会向后端工程师推荐Node.js。
“Node.js 是服务器端的 JavaScript 运行环境,它具有无阻塞(non-blocking)和事件驱动(event-driven)等的特色,Node.js 采用V8引擎,同样,Node.js实现了类似 Apache 和 nginx 的web服务,让你可以通过它来搭建基于 JavaScript的Web App。”
我想不仅仅是Node.js,当我们要引入任何一种新技术前都必须要搞清楚几个问题:
我们遇到了什么问题?
这项新技术解决什么问题,是否契合我们遇到的问题?
我们遇到问题的多种解决方案中,当前这项新技术的优势体现在哪儿?
使用新技术,带来哪些新问题,严重么,我们能否解决掉?
我们的问题:Server端阻塞
Node.js被设计用来解决服务端阻塞问题.下面通过一段简单的代码解释何为阻塞:
Js代码:
//根据ID,在数据库中Persons表中查出Name
var name = db.query("select name from persons where id=1");
//进程等待数据查询完毕,然后使用查询结果。
output("name")

这段代码的问题是在上面两个语句之间,在整个数据查询的过程中,当前程序进程往往只是在等待结果的返回.这就造成了进程的阻塞.对于高并发,I/O密集行的网络应用中,一方面进程很长时间处于等待状态,另一方面为了应付新的请求不断的增加新的进程.这样的浪费会导致系统支持QPS远远小于后端数据服务能够支撑的QPS,成为了系统的瓶颈.而且这样的系统也特别容易被慢链接攻击(客户端故意不接收或减缓接收数据,加长进程等待时间)。
相似回答