初识Node.js
1.浏览器中的JavaScript
- 浏览器中JavaScript的组成部分:ECMAScript、WebAPI
- JavaScript通过解析引擎进行运行
2.Node.js简介
- Node.js为JavaScript代码的正常运行,提供了必要的环境
- 在powershell、vscode、git中都可以执行js文件
3.Node.js操作
- node -v,查看是否安装及版本号
- Tab键可以补齐文件名或文件路径
- clear清空屏幕代码
- 上下键可以调出历史命令
- ctrl + c可以中断当前操作,两次可以退出
4.模块化
4.1自定义模块
- 自定义的js文件就是自定义模块,也就是处处皆模块
- 步骤
- 定义变量的文件。用module.exports属性导出内容
- 导入其他模块的文件。用**require(’./文件名’)**使用该文件的变量
![](https://i-blog.csdnimg.cn/blog_migrate/7860977c0f654a772b4290d1a9b31fa0.png)
4.2内置模块
4.2.1fs模块
- fs,即 file system,文件系统,该模块可以实现对文件、文件夹的操作
- 读取文件
const fs = require('fs')
fs.readFile('路径','编码集utf8',(err,data) => {
if(err != null){
return err.message;
};
console.log(data);
});
- 注意:
- 能读取到信息,err就是null
- 不能读取到信息,err就是对象,data就是undefined
- err有两个属性,name和message
- 这是异步操作
- 写入文件
const fs = require('fs');
fs.writeFile('路径','内容',err => {
if(err){
return err.message;
};
console.log('成功');
});
- 注意:
- 写入成功时,err为null;写入失败时,err就是对象
- 文件存在,覆盖原有内容;文件不存在,创建新文件填充内容
- 如果文件夹不存在,就会报错
- 判断文件
const fs = require('fs');
fs.access('路径',是否存在/可读/可写,err => {
if(err){
return console.log('');
};
});
- fs.constants.F_OK 文件是否存在
- fs.constants.R_OK 文件是否可读
- fs.constants.W_OK 文件是否可写
4.2.2path模块
- path 是 Node 本身提供的 API,专门用来处理路径
- 获取名称
const path = require('path');
path.extname;
path.basename;
- 拼接路径
const path = require('path');
path.join(__dirname,'路径');
- node.js中,相对路径,相对的是文件执行的位置,不是文件所在的位置
- 以后读取文件,不使用相对路径,使用绝对路径
4.2.3querystrung模块
- querystring.stringify(),将对象数据类型转换为字符串数据类型
- querystring.parse(),将字符串数据类型转换为对象数据类型
4.2.4http模块
- 协议:网络通讯数据的格式,http、https
- 域名:域名对应的是电脑的IP地址;IP地址是电脑在网络中的唯一标识
- 网络:内网;外网,公共网络;127.0.0.1和localhost代表本机电脑
- 端口:程序的出入口,有0—65535, 0—1023是固定端口; 1024—65535是动态端口
- 80端口给http; 443端口给https
- 简单服务器:
const http = require('http');
const server = http.createSercer();
server.on('request',(req,res) => {
console.log(req.method);
console.log(req.url);
res.statusCode = 201;
res.setHeader('Content-Type','text/html;charset=utf8')
res.end('');
});
server.listen(8888,function(){
console.log('');
});
5.综合案例
const http = require('http');
const server = http.createServer();
server.on('request',(req,res) => {
const path = require('path');
let url = req.url;
if(url == '/')url = '/index.html';
url = path.join(__dirname,"/txt",url);
const fs = require('fs');
fs.readFile(url,(err,data) => {
if(err){
res.setHeader('Content-Type','text/html;charset=utf8');
return res.end('<h3>404 Not Found 找不到该网址</h3>');
};
res.end(data)
});
});
server.listen(80,function(){
console.log('http://127.0.0.1');
})