首先明确一个概念,什么是node.js,基本上对node.js有兴趣的朋友大部分都是jser,我们或多或少的都见识过那些代码,和我们前端平时写的代码看起来是差不多的语法,其实我们知道全是js代码,但是我们在那些代码里面看不到熟悉的window.onload,document.getElementById之类的东西,替代的是一堆堆的module.exports,require,process.stdin,process.stdout等,
OK,我们为了理解什么是node.js,我们先回顾一下我们的的客户端编程,我们在墨鱼的js基础课程里面学习过js的三大组成部分(DOM、BOM和ECMAScript),其实当时我们隐瞒了一个细节,我们真正的js纯粹的理解的话,应该只需要学完ECMAScript就够了,因为其实所谡的DOM和BOM之类的都是属于JS这门语言在浏览器中的应用,如果我们年纪够早的时候,我们接触过的applet或者flash也是可以完成现在的js同样的功能的,说白了,因为我们的chrome等浏览器为我们提供了一种叫JS引擎的东西,所以他能够读取我们的JS代码进行执行,也就是为我们提供了一个运行JS的环境。其实我们的node.js也可以理解成是一种为我们js提供了一种运行的环境,只不过这个运行环境和我们的浏览器的JS运行环境有一点不太一样的地方,它的出现不是为了页面服务的,而是运行在服务器上面,和我们后端语言php,java等起到的作用是一样的,说到这里,大家应该明白了,其实node.js对我们前端的作用而言就是我们之前一直只能在客户端做事情,现在我们突然可以利用node来做一些和后台PHP等同样的事情了,如果我们平时的工作由只是为页面的交互写一些JS代码转变成了写node.js代码,可以说你的角色已经转变成了后端工程师了,这个我们知道的阿里还有雪球等国内知名公司已经有这样的职位了。
我们先来感受一下node的魅力吧:
需求一:我想做一个聊天室怎么办?
https://github.com/moyu-edu/chat-websocket
需求二:我想做一个服务器
需求三:我想用node做博客ghost,hexo
需求四:我想用node连接数据库mongoose
需求五:我要记录服务器的日志log4j.js 是不是很强大?
我们在下一节里面讲解怎么安装node