Node与JavaScript
JavaScript最早运行在浏览器中,浏览器只是提供了一种上下文,它定义了使用JavaScript可以做什么,但并没有说太多关于JavaScript语言本身可以做什么。事实上,JavaScript是一门完整的语言,它可以使用在不同的上下文中。
Node就是另外一种上下文,它允许在后端(脱离浏览器环境)运行JavaScript。要在后端运行JavaScript代码,代码需要先解释然后执行,Node基于Google的V8引擎来解释和执行JavaScript代码,V8引擎执行JavaScript速度非常快,性能非常好。
Node有许多各种各样的库,可以很方便的使用。
故,Node既是一个上下文(运行时环境),又是一个库。
第一个程序Hello Node
- 脚本模式
创建01.js文件,文件内包含如下:
console.log("hello node!");
打开终端执行:
$ node 01.js
运行结果如下:
- 交互模式
打开终端,输入node进入命令行模式,输入代码后执行并显示结果,如下:
$ node
> console.log("hello node!");
hello node
基于Node的Web应用
对于Node,不仅仅在实现一个应用,同时还需要实现整个HTTP服务器。
使用Node创建第一个应用
Node应用包括以下部分:
- 引入require模块:使用require指令来载入Node模块
- 创建服务器:服务器可以监听客户端请求
- 接收请求和响应请求:客户端可以使用浏览器或终端发送HTTP请求,服务器接收请求后返回响应结果
具体如下:
- 引入require模块:使用require指令载入Node自带的http模块,将实例化的结果赋值给变量http
var http = require("http");
- 创建服务器:使用http模块提供的函数
createServer()
方法创建服务器,这个函数返回一个对象,这个对象有一个listen()
方法,这个方法有一个数值参数,指定这个http服务器监听的端口号,本例子监听端口号是8888 - 接收请求和响应请求:使用request和response参数来接收和响应请求。
完整代码如下:
var http = require("http");
http.createServer(function(request, response){
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello Node!');
}).listen(8888);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
运行结果如下: