Node.js简介、应用

node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,使用了事件驱动、非阻塞式I/O的模型。

在之前写java代码的时候,经常会遇到线程不安全的问题。node底层基于单线程的事件队列,在编写代码的时候不需要去考虑线程的安全问题以及切换线程的开销问题。单线程的和非阻塞IO的实现,以及 Chrome V8 引擎的加持,使得node在处理高并发的场景下也毫不逊色。

node基于js实现,对于web开发者来讲,门槛相对很低。同时现在前端的诸多框架都是基于node实现的,如果自己想维护个网站,就可以node在手,吃遍前后端。写了三个月node后台开发,感觉node的开发效率也挺高

node的特点

简单描述一下,具体可以看https://cloud.tencent.com/developer/article/1005761

异步I/O:拿ajax来说,就是当我们发起一个ajax之后,我们不需要阻塞等待结果返回(传一个回调函数就可以完成数据的调用),可以在等待返回数据的同时作别的事情

事件和回调函数:node的机制是基于事件驱动。拿发请求来说,成功则返回数据,失败则返回error。这里请求就是一个事件,成功和失败的操作就是相应绑定的回调函数。node的调度是基于事件循环调度的。

单线程:单线程可以减少开发中的同步问题以及线程切换的开销。缺点是无法充分利用CPU,错误会导致整个应用退出,以及计算复杂的场景容易导致主线程无法调度。node提供了child_process和cluster模块,可以在主进程中创建独立的子进程,合理使用可以提高CPU的利用率

node的应用

  1. 做网站开发。使用node可以前后端编程语言统一,对于做个人网站用node写起来还是很爽的。express+Vue分分钟写出来。

  2. 做工具类型的应用。node有很多的包npmjs.com,对于工具来说很多都已经有现有的轮子了,直接npm install拿来使用(或许python也不错)。值得一说的是,前几天在做数据交叉验证的时候使用了mocha(一个测试框架),感觉很好用、当时有个想法就是:用node写一个大数据的元数据管理、数据校验的框架,以后有机会写一个

  3. 更多的应用可以看https://www.cnblogs.com/gassnake999/p/7044580.html

最后

node看书的话,推荐《深入浅出node.js》

开发的话,面向google and github编程吧


对于node的使用也只是停留在curd阶段,只是工作需要,并不打算深入,只是不想让这段时间node开发白干。之后陆续写几篇node相关的技术,供以后回顾。

最近什么都用,也什么都在学,还是应该专心的去学习BIGDATA!

对于node的掌握就当做是干大数据的人中最会玩node的吧!

你可能感兴趣的:(Node.js)