什么是 Node.js
Node.js就是运行在服务端的JavaScript。
Node.js是一个基于Chrome JavaScript运行时建立的一个平台。
Node.js是一个事件驱动 I/O 服务端的JavaScript环境。基于Google v8引擎
接下来我们创建第一个应用 server.js
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 World '); }).listen(3000); // 终端打印如下信息 console.log('Server running at http://127.0.0.1:3000/');
运行 node server.js 可以启动上服务
Node.js REPL (交互式解析器 --> Read-Eval-Print-Loop)
命令:node 进入 执行 打印 循环 ; ctrl+c 两下退出
Node.js 的回调函数
Node.js的异步编程的直接体现就是回调
d2.txt
文件中 写入 Rain_tdk
fs.js
var fs = require('fs') //阻塞代码执行的写法 var ds = fs.readFileSync('d2.txt') console.log(ds.toString()) console.log('阻塞代码执行') //非阻塞代码执行的写法 fs.readFile('d2.txt',function (err,data) { if(err) console.log(err); console.log(data.toString()) }) console.log('不阻塞代码执行')
执行结果: 非阻塞代码的写法能极大的提高Node.js 的性能(提醒:Node.js 中所有的api 都支持回调函数)。可以处理大量的并发请求。
Node.js事件回调
Node.js是单进程单线程应用程序,但是可以通过事件和回调支持并发,所以性能很高。
Node.js的每一个api都是一部操作的,并作为一个独立的线程运行,使用异步函数调用,并发处理。
Node.js基本上所有的事件机制都是用设计模式中的观察者模式实现的。
Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数.