通俗的语言说一下什么是node

252 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8月更文挑战」的第5天,点击查看活动详情

前言

本文讲解一下什么是node.js,在说node之前,先想想为什么js可以在浏览器中执行?主要是依靠js引擎。chrome浏览器中,使用的是v8引擎,也是当前最优秀的一种js引擎。

为什么js可以操作dom和bom?
因为浏览器内置了dom,bom的api。
浏览器中js的运行环境包括v8引擎,内置api(例如bom,dom,canvas,js内置对象等)

什么是node呢?
它其实就是一种运行环境,就好比浏览器可以运行前端。那node就可以运行后端。node是基于chromev8引擎的js运行环境。
node运行环境包括v8引擎,内置api(fs,path,http,js内置对象等)

node.js可以做什么?
1.express-快速构建web应用
2.electron-构建跨平台桌面应用
3.restift框架-构建api接口
4.读写和操作数据库

node中如何运行js代码?
1.打开终端,进入到指定js文件中
2.再输入node+空格+目标文件名

直接打开的方法:进入到文件目录,然后按shift,右键--powershell

内置api - fs
fs-用来操作文件
fs.readFile()读取文件内容
fs.writeFile()写入文件内容
三个参数(文件路径,读取文件采用的编码格式(utf-8),回调函数(err,返回的结果))
err为null的时候,证明读取成功

path路径
path.join( _dirname + ’/file‘)把多个路径片段拼接为完整的路径字符串
path.basename() // 从一个文件路径中,获取文件名
path.extname()// 获取文件扩展名

web服务器
http模块:用来创建web服务器,普通电脑通常安装apache等服务器软件,就变成web服务器。
在node中,不用安装软件,它自身提供了http模块。

创建web服务器
1.导入http模块
const http = reuqire('http')
2.创建web服务器实例
const server = http.createServer()
3.为服务器绑定request事件,监听客户端请求
server.on('request',(req, res)=> {
// req.url 是客户端请求的url地址
// req.method是客户端请求的method类型
// res.end(str) // 发生响应
//(解决中文乱码问题,手动设置响应头,content-type)
})
4.启动服务器
server.listen(端口号,回调函数)

模块
把一个大文件拆分成独立并且互相依赖的多个小模块
作用:提高复用性,可维护性,按需加载

node中的模块
node模块遵循common.js
1.内置模块 (fs,http,path)
2.自定义模块 (用户创建的每个自定义文件)
3.第三方模块 (第三方开发的)

使用require方法加载其它模块时,会执行被加载模块中的代码


node第三方模块,就是包
包是内置模块封装出来的,内置模块优先级最高

express
express.static(),可以用它方便的创建一个静态资源服务器。
app.use(express.static('public')) ,这样就可以访问public目录下的图片,css,js

挂载路径前缀:app.use('/abc',express.static('public'))。路径前必须是abc的,才能访问到public

nodemon
node工具,监听项目文件,代码被修改后,nodemon自动帮我们重启项目