前端之魂,触碰后端的手——Node.js学习之路(一)

什么是Node.js?

Node.js是构筑于Chrome中所使用的V8 Javascript引擎的运行时工具。依靠事件驱动和非阻塞式IO模块实现了高效与轻量的特性。
这款异步的事件驱动型JavaScript运行时工具设计之初就是为了打造可扩展的网络应用。
其特殊的工作模式非常善于处理高并发的网络任务。

以上内容来自官网描述的翻译,通俗的讲是有个哥们觉得Chrome里的Javascript跑得飞快,究其原因是Chrome里的Javascript引擎比较给力,万幸Google大气把这个V8引擎开源了,那不如我们拿来改造一下做点更黑科技的事情。

为什么Node.js适合高并发

在IO密集型业务中适用于高并发环境主要依靠了异步编程的特性,因为IO操作远跟不上CPU的运算,所以让CPU异步操作,避免等待IO事件的完成确实能节省很多时间,对于异步编程的描述阮一峰老师的文章《Javascript异步编程的4种方法》真的写的非常好了。

如何安装Node.js

Node.js的安装其实非常简单,首先访问官方网站

对于官网提供的两种版本:

  • LTS指长效支持版本,性能稳定,生产环节都用它。
  • Current则是当前的最新版本,功能丰富但稍欠稳定,自己玩玩这个也很不错。

对于初学而言无论哪个版本都可以满足需要,而且官网会根据访问者的操作系统自动更换匹配的版本,非常方便,随意选择一款下载至本地电脑
而安装过程也非常的简单,无论是Mac还是Windows下都不断点击下一步即可。这里需要注意的一点是 虽然可以修改默认的安装路径,但是为了使用方便,避免今后修改其他模块设置,我们统统使用默认的安装路径

安装完成后打开操作系统的终端工具(Mac的终端或者Windows的cmd命令行工具),输入:

1
node -v

如果正确返回版本号:

1
v6.2.1

则表示安装正确。

以Hello Wrold开始星辰大海的征程

我们可以在桌面新建一个名为nodetest的文件夹然后新建一名为app.js的文件。文件中输入如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});

server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});

你们可能注意到了,Node.js竟然是支持ES6的,如果感到不适的话也可以吧const改成var,把()=>改成function()。不过早点接触新技术还是对我们有利的。

保存代码后,回到终端并进入当前目录。输入

1
node app.js

终端中会输出

1
Server running at http://127.0.0.1:3000/

此时我们可以打开浏览器访问http://127.0.0.1:3000/的时候会看到浏览器里输出了一行小小的Hello World

(未完待续)