为什么要学习Node.js
- 企业需求
- 具有服务端开发经验更改
- front-end
- back-end
- 全栈开发工程师
- 基本的网站开发能力
- 服务端
- 前端
- 运维部署
- 多人社区
Node.js是什么
- Node.js是JavaScript 运行时
- 通俗易懂的讲,Node.js是JavaScript的运行平台
- Node.js既不是语言,也不是框架,它是一个平台
- 浏览器中的JavaScript
- EcmaScript
- 基本语法
- if
- var
- function
- Object
- Array
- Bom
- Dom
- Node.js中的JavaScript
- 没有Bom,Dom
- EcmaScript
- 在Node中这个JavaScript执行环境为JavaScript提供了一些服务器级别的API
- 例如文件的读写
- 网络服务的构建
- 网络通信
- http服务器
- 构建与Chrome的V8引擎之上
- 代码只是具有特定格式的字符串
- 引擎可以认识它,帮你解析和执行
- Google Chrome的V8引擎是目前公认的解析执行JavaScript代码最快的
- Node.js的作者把Google Chrome中的V8引擎移植出来,开发了一个独立的JavaScript运行时环境
- Node.js uses an envent-driven,non-blocking I/O mode that makes it lightweight and efficent.
- envent-driven 事件驱动
- non-blocking I/O mode 非阻塞I/O模型(异步)
- ightweight and efficent. 轻量和高效
- Node.js package ecosystem,npm,is the larget scosystem of open sourcr libraries in the world
- npm 是世界上最大的开源生态系统
- 绝大多数JavaScript相关的包都存放在npm上,这样做的目的是为了让开发人员更方便的去下载使用
- npm install jquery
Node能做什么
- web服务器后台
- 命令行工具
- npm(node)
- git(c语言)
- hexo(node)
- ...
- 对于前端工程师来讲,接触最多的是它的命令行工具
- 自己写的很少,主要是用别人第三方的
- webpack
- gulp
- npm
起步
安装Node环境
- 查看Node环境的版本号
- 下载:nodejs.org/en/
- 安装:
- 傻瓜式安装,一路
next
- 安装过再次安装会升级
- 确认Node环境是否安装成功
- 查看node的版本号:
node --version
- 或者
node -v
- 配置环境变量
解析执行JavaScript
- 创建编写JavaScript脚本文件
- 打开终端,定位脚本文件的所属目录
- 输入
node 文件名
执行对应的文件
注意:文件名不要用node.js
来命名,也就是说除了node
这个名字随便起,最好不要使用中文。
文件的读写
文件读取:
//浏览器中的JavaScript是没有文件操作能力的 //但是Node中的JavaScript具有文件操作能力 //fs是file-system的简写,就是文件系统的意思 //在Node中如果想要进行文件的操作就必须引用fs这个核心模块 //在fs这个和兴模块中,就提供了人所有文件操作相关的API //例如 fs.readFile就是用来读取文件的 // 1.使用fs核心模块 var fs = require('fs'); // 2.读取文件 fs.readFile('./data/a.txt',function(err,data){ if(err){ console.log('文件读取失败'); } else{ console.log(data.toString()); } })
文件写入:
// 1.使用fs核心模块 var fs = require('fs'); // 2.将数据写入文件 fs.writeFile('./data/a.txt','我是文件写入的信息',function(err,data){ if(err){ console.log('文件写入失败'); } else{ console.log(data.toString()); } })
http
服务器:
// 1.加载http核心模块 var http = require('http'); // 2.使用http.createServer()创建一个web服务器 var server = http.createServer(); // 3.服务器要做的事儿 // 提供服务:对数据服务 // 发请求 // 接收请求 // 处理请求 // 反馈(发送响应) // 当客户端请求过来,就会自动触发服务器的request请求事件,然后执行第二个参数:回调处理函数 server.on('request',function(){ console.log('收到客户的请求了') }) // 4.绑定端口号,启动服务 server.listen(3000,function(){ console.log('runing...') })
总结与思考
- 异步编程:Node.js 采用了非阻塞式 I/O 和异步编程的方式,可以处理高并发、高吞吐量的请求。这种异步编程模型对于 I/O 密集型应用非常适合,可以提高系统的响应速度和吞吐量。
- 事件驱动:Node.js 基于事件驱动的模型,通过触发事件和注册回调函数的方式来处理请求。这种模型可以有效地减少系统的资源占用,提高系统的可扩展性和可维护性。
- 模块化:Node.js 支持模块化的编程方式,可以将代码分成多个模块,每个模块可以单独开发、测试和维护,使得系统更加易于开发和维护。
- 跨平台性:Node.js 可以运行在多种操作系统上,包括 Windows、Linux 和 Mac OS 等,这使得开发者可以在不同的平台上开发和运行应用程序。
- 生态系统:Node.js 有一个庞大的生态系统,包括了大量的第三方模块和工具,这些模块和工具可以方便地扩展 Node.js 的功能,使得开发更加高效和便捷。
总的来说,Node.js 是一款非常适合开发高并发、高吞吐量的应用程序的 JavaScript 运行环境,具有异步编程、事件驱动、模块化和跨平台性等优点。在选择开发技术时,应该根据实际的业务需求和技术特点来进行选择。