day24-nodejs 根底
一、nodejs 介绍
1. 简介
nodejs 是一个软件,提供了 js 的运行环境
2.nodejs 应用注意事项
没有 window、document,不须要写 dom 和 bom,只剩下 ECMAScript
3.nodejs 运行
命令行中 node 进入控制台
node js 文件名称
二、简略命令
盘符:———- 进入某个盘符
cd /d 目录: ---------- 进入某个目录
cd .. ---------- 回到上一级
dir ---------- 查看以后文件夹中的所有文件和文件夹
tree ---------- 查看以后文件夹中的所有文件和文件夹包含子文件夹及其文件,树状构造
cls---------- 清屏
ipconfig ---------- 查看以后电脑的网管信息
systeminfo ---------- 查看以后电脑的配置信息
md 文件夹名字 ---------- 新建文件夹
rd 文件夹名字 ---------- 删除文件夹
type nul> 文件名 ---------- 新建文件
echo 内容 > 文件名 ---------- 给文件中写入内容
ren 文件名 新文件名 ---------- 将文件重命名
del 文件名 ---------- 删除一个文件
三、模块化开发
1.IIFE--- 伪模块开发
解决了全局净化的问题
无奈解决文件依赖问题
2.AMD
解决了文件依赖关系的问题
首屏加载很慢,后续操作很晦涩
3.CMD
实现了文件的按需加载,首屏加载很快
后续操作不是很晦涩
4.ES6---***
运行在服务器环境中
script 标签必须有 type='module' 属性 向外共享模块成员用 export 关键字
导入其余模块成员用 import 关键字
默认导出语法:export default 默认导出的成员 ---- 每个模块只容许应用一次 export default
默认导入语法:import 承受名称 from '模块标识符'
按需导出语法:export 按需导出的成员
按需导入语法:import {xxx} from '模块标识符'
export var a = '小狗'-- 这种导出用 import {解构} from '文件' 或者用 import * as 对象 from '文件'
5.CommonJs 标准 ---*****
只实用于 nodejs
导出:module.exports = 数据 ----exports. 键 = 值
留神:不能给 exports 赋值
导入:require('文件门路')--- 后缀能够省略,./ 不能省略
四、内置模块
1.fs– 文件系统
引入内置模块: const fs = require('fs')
writeFile-- 给文件写入内容的,文件不存在会主动创立,笼罩写入,异步办法
语法:fs.writeFile(文件门路, 待写入的数据,err => {})
writeFileSync-- 给文件写入内容的,文件不存在会主动创立,笼罩写入,同步办法
语法:fs.writeFileSync(文件门路, 待写入的数据)
readFile--- 异步读取文件
如果增加了第二个参数 - 'utf-8' 就不必转 buffer 了,间接读取到字符串了
fs.readFile(文件门路, 'utf-8’,(err,data) => {}) // 异步读取文件
readFileSync--- 同步读取文件
如果增加了第二个参数 - 'utf-8' 就不必转 buffer 了,间接读取到字符串了
fs.readFileSync(文件门路, 'utf-8’) // 同步读取文件
existsSync - 判断所给的门路是否存在
fs.existsSync('文件门路')
stat - 获取门路的信息
fs.stat('文件门路', (err, stats) => { }// stats 示意获取到的信息
stats.isFile()--- 判断门路是否是文件
isDirectory()--- 判断是否是文件夹
appendFile - 异步给文件追加内容
fs.appendFile('文件门路', '文本内容', (err) => {}
fs.appendFileSync('./a.txt', 'abc')--- 同步追加
renameSync - 重命名文件
fs.renameSync('原文本名', '新文本名')
unlinkSync - 删除文件
fs.unlinkSync('文本名')
2.os
引入:const os = require(‘os’)
换行 - EOL - end of line------------os.EOL
获取 cpu 信息 - cpus()---------------os.cpus()
获取总内存 - totalmem()------------os.totalmem()--- 单位是字节
获取以后闲暇内存 - freemem()---------os.freemem()
3.path
引入:const path = require(‘path’)
join - 将多个字符串拼接成一个门路的 -----path.join('/a', 'b', 'c')------/ 在服务器环境中,代表根目录
basename - 获取门路中的文件名称(不蕴含目录)---path.basename(str)
dirname - 获取门路中的目录局部(不蕴含文件名称)---path.dirname(str)
extname - 获取门路中的文件后缀 ---path.extname(str)
4.url
引入:const url = require('url')
parse - 解析 url 网址 -------url.parse(str)
resolve - 依据 url 的规定拼接新的 url 网址 -------url.resolve(str, '../../d/e/fs.html')
5.querystring
引入:const qs = require('querystring') // 业余解决查问字符串
stringify-- 或 encode----qs.stringify(obj)---- - 将一个对象转成 地址栏中的数据局部 字符串
parse - ---- 或 decode--------qs.parse(str)------------- 将地址栏中的数据局部 字符串 转成对象
6.http—–*
引入:const http = require('http')
创立服务器 - 当客户端拜访来给客户端做响应,给 createServetr 增加函数参数
const server = http.createServer((request, response) => {}//request - 申请 ----response - 响应
response.write('this is my server!') // 响应内容的办法
response.end() // 完结这次响应的办法 -------end 办法也能够响应内容
指定端口号 - 0~65535,给 7000 以上的数字
server.listen(9527, () => {// 服务器运行起来后执行的代码}