Node.js是什么?
- Node.js本质上是一个JavaScript的运行环境。
- 基于Google的V8引擎,实际上,是从Chrome上抠下的V8引擎并加以封装的一个执行环境。
- Node下载官网:https://nodejs.org/en/download/
Node.js优点?
- 快,性能高,开发效率高,应用范围广
- 1.Node.js有超强的高并发能力
- Node非阻塞I/O,基于事件驱动:
- Node.js当接收到一个用户连接,就会触发一个内部事件。通过事先定义好的函数,达到响应用户的行为。Node.js主线程并不关心程序要走什么流程,实际上,有另外的工作线程去帮Node主线程去存取文件,读数据库,当工作线程读取到文件数据,或数据库里面的数据,就会把回调函数返回给Node主线程去执行,例如: 把找到的数据传回客户端,关闭连接一些操作。
- Node.js当接收到一个用户连接,就会触发一个内部事件。通过事先定义好的函数,达到响应用户的行为。Node.js主线程并不关心程序要走什么流程,实际上,有另外的工作线程去帮Node主线程去存取文件,读数据库,当工作线程读取到文件数据,或数据库里面的数据,就会把回调函数返回给Node主线程去执行,例如: 把找到的数据传回客户端,关闭连接一些操作。
- Node非阻塞I/O,基于事件驱动:
- 2.Node用的就是JavaScript的语法
- Node.JS 基于 javaScript 的 V8引擎,也就是说只要会JS的语法,就能用于后端开发,但是Node官方推荐用ECMA Script6(ES6)语法 。
- Node打破了过去JavaScript只能在浏览器运行的局面,让前后端编程环境统一,这样就大大降低了开发成本。
- 3.Node.JS 出现促成前端工程化思想
- Node.js不仅仅是运行环境,也是一门脱胎换骨全新的JavaScript语言,它容纳了JS语法基础,还加入一些内部模块如:
- http用来处理请求响应的模块
- fs 用来读取文件的模
- url 用来解析请求数据等等
const http = require('http')
- Node.js不仅仅是运行环境,也是一门脱胎换骨全新的JavaScript语言,它容纳了JS语法基础,还加入一些内部模块如:
- 4.Node.js还集成了 Npm 包管理工具,让我们可以很方便的通过命令行就能下载我们项目依赖的包如:
npm install jquery
npm install -g webpack
npm install -g create-react-app
等等const Jquery = require('jquery')
- 5.Node 还支持自定义模块语法
const app =()=>{ //模块代码 } module.exports = app;
const app = require('module/app.js'); //引入自定义模块
Node.js能做什么?
- Web服务器后台(java、php做的node.js都能做)
- 命令行工具
for example
- eg1:
node -v
vim helloworld.js
console.log("hello world");
node helloworld.js
- eg2:
- 引入 required 模块
var http = require("http")
; - 创建服务器 ,我们使用 http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口。 函数通过 request, response 参数来接收和响应数据。如下,在你项目的根目录下创建一个叫 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\n'); }).listen(8888); // 终端打印如下信息 console.log('Server running at http://127.0.0.1:8888/');
node server.js
- 打开浏览器访问 http://127.0.0.1:8888/
- 引入 required 模块