Node.js笔记01 Node基础及三大模块

初识Node.js

1.浏览器中的JavaScript

  • 浏览器中JavaScript的组成部分:ECMAScript、WebAPI
  • JavaScript通过解析引擎进行运行

2.Node.js简介

  • Node.js为JavaScript代码的正常运行,提供了必要的环境
  • 在powershell、vscode、git中都可以执行js文件

3.Node.js操作

  1. node -v,查看是否安装及版本号
  2. Tab键可以补齐文件名或文件路径
  3. clear清空屏幕代码
  4. 上下键可以调出历史命令
  5. ctrl + c可以中断当前操作,两次可以退出

4.模块化

4.1自定义模块

  • 自定义的js文件就是自定义模块,也就是处处皆模块
  • 步骤
    1. 定义变量的文件。用module.exports属性导出内容
    2. 导入其他模块的文件。用**require(’./文件名’)**使用该文件的变量

4.2内置模块

4.2.1fs模块
  • fs,即 file system,文件系统,该模块可以实现对文件、文件夹的操作
  1. 读取文件
const fs = require('fs')
fs.readFile('路径''编码集utf8'(err,data) => {
	if(err != null){
		return err.message;
	};
	console.log(data);
});
  • 注意:
    1. 能读取到信息,err就是null
    2. 不能读取到信息,err就是对象,data就是undefined
    3. err有两个属性,name和message
    4. 这是异步操作
  1. 写入文件
const fs = require('fs');
fs.writeFile('路径''内容',err => {
	if(err){
		return err.message;
	};
	console.log('成功');
});
  • 注意:
    1. 写入成功时,err为null;写入失败时,err就是对象
    2. 文件存在,覆盖原有内容;文件不存在,创建新文件填充内容
    3. 如果文件夹不存在,就会报错
  1. 判断文件
const fs = require('fs');
fs.access('路径',是否存在/可读/可写,err => {
	if(err){
		return console.log('');
	};
});
  1. fs.constants.F_OK 文件是否存在
  2. fs.constants.R_OK 文件是否可读
  3. fs.constants.W_OK 文件是否可写
4.2.2path模块
  • path 是 Node 本身提供的 API,专门用来处理路径
  1. 获取名称
const path = require('path');
path.extname;//获取后缀名
path.basename;//获取基础名称
  1. 拼接路径
const path = require('path');
path.join(__dirname,'路径');//__dirname是文件所在文件夹的位置
  1. node.js中,相对路径,相对的是文件执行的位置,不是文件所在的位置
  2. 以后读取文件,不使用相对路径,使用绝对路径
4.2.3querystrung模块
  1. querystring.stringify(),将对象数据类型转换为字符串数据类型
  2. 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) => {
	//req身上获取请求方式和资源路径
    console.log(req.method);
    console.log(req.url);
    //res身上设置状态码和响应头
    res.statusCode = 201;
    res.setHeader('Content-Type','text/html;charset=utf8')                       
	//响应客户端信息
	res.end('');
});
//启动服务
server.listen(8888,function(){
	console.log('');
});

5.综合案例

//需求:在地址栏中输入访问地址,可以访问index.html  list.html 
const http = require('http');
const server = http.createServer();
server.on('request',(req,res) => {
    //2、获取请求路径,拼接为绝对路径
    const path = require('path');
    let url = req.url;
    //判断路径,如果只是 / ,默认访问index.html
    if(url == '/')url = '/index.html';
    url = path.join(__dirname,"/txt",url);
    //不需要响应路径了
    // res.end(url);
    //3、根据路径地址,读取文件,响应给客户端
    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');
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值