node简介

作用:

  1. 用于构建服务器端应用程序,如Web应用、API服务等
  2. 用于构建实时应用程序,如聊天应用、实时协作工具等
  3. 用于构建Web应用程序,如各种类型的Web应用程序
  4. 用于构建RESTful API,用于与前端应用或移动应用进行数据交互

Buffer

let buf=Buffer.alloc(10)
console.log(buf)         此方式会将buffer先归0
let buf2=Buffer.allocUnsafe(1000)
console.log(buf2)            此方式不会,所以速度快一点
Buffer.from(String/array)

一个buffer位置最大是255,因为是8个bit

fs读写模块

const fs=require('fs');
fs.writeFile('autocreate.txt','contant',err => {
    if (err){
        console.log(err)
        return
    }

})

上面写入文件就是异步执行
fs.writeFileSync 这个方法同步

fs.writeFile('example.txt', data, { flag: 'a' }, (err) => {
  if (err) throw err;
});

上面的a代表就是追加写入

createWriteStream 是 Node.js 中一个用于创建可写流的函数。它通常用于创建指向文件的写入流,以便将数据连续写入文件,而不是一次性将所有数据加载到内存中。
以下是一个使用 createWriteStream 创建写入流的简单示例:

const fs = require('fs');

// 创建一个写入流,将数据写入文件
const writeStream = fs.createWriteStream('output.txt');

// 将数据写入流
writeStream.write('这是要写入的第一行数据\n');
writeStream.write('这是要写入的第二行数据\n');

// 关闭流
writeStream.end();

在上面的示例中,我们使用 fs.createWriteStream 创建了一个名为 output.txt 的文件的写入流。然后,我们使用 writeStream.write 方法连续写入两行数据到文件中。最后,我们调用 writeStream.end 方法来关闭流。

注意,在使用 createWriteStream 创建写入流时,需要调用 end 方法来真正关闭流并释放系统资源。否则,流可能会保持打开状态,直到程序退出或资源被强制释放。

读取文件
const fs = require('fs');

// 读取文件内容
fs.readFile('example.txt', 'utf8', (err, data) => {
  if (err) throw err;

  console.log(data);
});

在上面的示例中,我们使用 fs.readFile 函数读取了名为 example.txt 的文件的内容。我们指定了文件编码为 utf8,并且将文件内容作为回调函数的第二个参数。如果读取文件时出现错误,我们会抛出异常。否则,我们将在控制台打印文件的内容。

请注意,readFile 是一个异步操作,因此它不会阻塞其他代码的执行。如果你需要在读取文件之后执行其他操作,你可以将这些操作放在回调函数中。

createReadStream函数通常用于读取大文件,因为它可以分批读取文件,而不是一次性将整个文件加载到内存中。这使得它适用于处理大型数据文件,并减少内存使用。

const fs = require('fs');

// 创建可读流
const readStream = fs.createReadStream('large-file.txt');

// 设置编码
readStream.setEncoding('utf8');

// 监听数据事件,当有数据可读时触发
readStream.on('data', (chunk) => {
  console.log(`读取到的数据:${chunk}`);
});

// 监听 end 事件,当流结束时触发
readStream.on('end', () => {
  console.log('读取结束');
});

// 监听 error 事件,当发生错误时触发
readStream.on('error', (err) => {
  console.error(`读取文件时出错:${err}`);
});
文件复制
const fs=require('fs');
const rs=fs.createReadStream(‘路径’)
const ws=fs.createWriteStream(‘路径’)
rs.on('data',chunk => {
    ws.write(chunk)
})
文件删除

在这里插入图片描述

文件夹创建和删除
fs.makedir('',{recursive:true},err =>{
    if (err){
        recursive 表示的是递归创建
    }
})
fs.rmdir('',{recursive:true},err =>{
    if (err){
        recursive 表示的是递归创建
    }
})
查看文件状态
const fs=require('fs');
fs.stat('',(err,data) => {
    data.isFile()
    data.isDirectory()
})
重命名
const fs = require('fs');

fs.rename('旧文件路径', '新文件路径', (err) => {
    if (err) throw err;
    console.log('文件已重命名');
});

http

超文本传输协议

http请求报文:

请求行:

  1. 方法:get/post/put/patch 更新
  2. url:
    在这里插入图片描述
  3. HTTP版本是指客户端使用的HTTP协议版本,例如HTTP/1.1。

请求头部:包含请求的元数据信息,例如请求的数据类型、编码方式等。
空行:用于分隔请求头部和请求数据。
请求体:包含请求的具体数据,例如在POST请求中发送的数据。

http响应报文:

响应行:HTTP版本是指服务器使用的HTTP协议版本,例如HTTP/1.1;状态码表示服务器对请求的处理结果,例如200表示请求成功,404表示未找到资源;
响应头部:包含响应的元数据信息,例如返回的数据类型、编码方式等
空行:用于分隔响应头部和响应数据
响应体:包含服务器返回的具体数据,例如请求成功后的结果数据。响应数据可以是文本、图片、视频等各种形式的数据。
在这里插入图片描述

node的模块化

exports=module.exports={}
所以exports=value,用require引入模块是空对象
所以exports . key=value
在这里插入图片描述
npm r 删除包

cnpm

通过cnpm使用淘宝镜像:npm install -g cnpm --registry=https://registry.npm.taobao.org。
将npm设置为淘宝镜像:npm config set registry https://registry.npm.taobao.org。
查看npm镜像设置:npm config get registry。
查看cnpm镜像设置:cnpm config get registry。

express

npm i express

const express=require('express')
const app=express()
app.all('', (req,res) => {
    res.end('ss')
})

app.listen(3000, () => {
    console.log('服务启动')
})

在这里插入图片描述
根据占位符获得路径,

 res.statusCode = 404
 require可以引入json文件,可以用解构赋值解析
   res.status(500).set('xiangyingtou','').send('响应体')
   链式设置响应

req . query 可以获得路径参数

静态资源中间件
app.use(express.static(__dirname + '/public'))

根据路径访问获得静态资源

防盗链

app.use((req,res,next) => {
    let referer = req.get('referer')
    if (referer){
        let url = new Url(referer)
        let hostname=url.hostname
        if (hostname!='127.0.0.1'){
            res.status(404).send`<h1>防盗链</h1>>`
            return
        }
    }
    next()
})

看访问是否有refer

ejs

返回网页可以进行列表渲染

处理文件上传

cookie

请求报文的请求头中
是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带,发送到服务器上。

   res.setcookie('string','value',{maxAge:60*1000}) /一分钟
 res.clearCookie('string')
req.cookies

session

数据存在服务器
权限验证后创建session对象,拥有session_id,以cookie的形式返回浏览器。下次浏览器请求就会通过该id去对比,用于身份识别

cookie设置内容过多会影响传输效率,单个cookie不超过4k

https证书

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值