一 、Node.js 简介
我们认识新事物的过程常常为以下三步,我总结为 “WWH”,通过这三个阶段我们可以快速了解新事物。
三阶段之一What
第一个W为What的缩写,就是说它是什么东西,而 Node.js 是一种程序设计平台,它用 JavaScript 来创建服务端的应用程序,熟悉web开发的人都知道,JavaScript主要实现前端页面的交互,也就是在客户端它发挥了巨大的作用,但是它能做的远非如此,Node.js 正是基于JavaScript在服务端大展身手。
三阶段之二Why
第二个W是Why的缩写,它为什么出现并获得开发人员的青睐,这也是我们关心的问题。Node.js 是一个让JavaScript运行在浏览器之外的平台,它实现诸如文件系统,模块包,操作系统 API 以及网络通信的功能,可以说它是为网络而生。Node.js 的JavaScript引擎是V8,它来自于Google 的chrome 项目,V8引擎号称是世界上最快的 JavaScript引擎,执行速度就如同本地执行一般,而且它应用广泛,可以开发具有复杂逻辑的网站、具有社交网络的大规模web应用、Web Socket服务器、TCP/UDP套接字程序、JavaScript编译器等。
三阶段之三How
H即为How的缩写,这是一个漫长的过程,理论联系实际,学习知识我们就要运用知识解决问题,而在解决问题的同时我们也巩固了知识,也对知识有新的理解,这是一个良性循环的过程。这一阶段我们主要学习Node.js的核心思想,异步与事件回调的编程模型,同时对一些主要模块进行学习,之后会涉及如何通过Node.js搭建一个Web应用。
二 、Node.js 安装与配置
本文只介绍在Windows下的安装与配置,在其他平台安装过程类似。在Windows下安装与配置十分简单,首先访问http://nodejs.org 选择LTS(长期服务版)点击下载,然后选择好安装路径,一直点下一步即可。注意安装包自带了npm管理器,这个管理器非常有用,之后再详解。安装完成后,打开cmd(windows + R 快捷键),验证是否安装成功。
输入 node -v,屏幕显示node相应的版本号,如下图,同时我输入了npm - v,也可以看到 npm 的版本
到此时node的安装配置已完成。
三 、Node.js 初体验
毫无疑问,第一个程序仍然是hello world。在你熟悉的文本编辑器(推荐VS Code 、Sublime text)中输入如下代码:
console.log('Hello World!');
保存为hello.js,进入代码所在目录,输入 node hello.js,执行结果如下:
接着来一个难一点的,写一个http服务器,代码如下:
var http = require('http');
http.createServer(function (request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/html
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('<h1>node.js create web application </h1>');
response.write('<p>http server </p>');
// 发送响应数据
response.end('I am learning node.js \n');
}).listen(8088);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8088/');
保存为http.js,运行结果如下:
可以看到已经成功运行,接着在浏览器输入网址 http://127.0.0.1:8088/,结果如下:
小技巧:当我们修改源代码时,刷新浏览器发现页面并没有更新,这是因为Node.js只有在第一次引用到某部分时才会解析脚本文件,之后访问的都是内存,避免重新载入,所以当你用Node.js开发HTTP应用时,无论你修改了代码的哪一行,都必须重新运行。这种设计利于提高性能,但是不利于开发调试,这里就可以用到一个小工具 —— supervisor,它会监视代码并自动重启Node.js,安装及使用非常简单。安装过程如下:
在命令行输入如下代码: npm install -g supervisor ,截图如下:
此时 supervisor已经安装好,接下来使用supervisor监视代码,如下:
还是以刚才HTTP应用为例,修改代码(第11行代码),如图:
var http = require('http');
http.createServer(function (request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/html
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('<h1>node.js create web application </h1>');
response.write('<p>http server </p>');
response.write('<p>add something </p>');
// 发送响应数据
response.end('I am learning node.js \n');
}).listen(8088);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8088/');
在命令行可以看到node.js重启了,如图:
刷新浏览器,可以看到页面已经更新,如下图:
好了,到此调试问题解决,期待下一篇博客吧!