NodeJS学习总结

Nodejs

可用于开发服务端应用、开发工具类应用、开发桌面端应用;nodejs是ecmscript的核心语法,nodejs中不能使用BOM和DOM的API,他的顶层对象是global,可以用globalThis访问顶层对象;可以用console和定时器API。

Buffer(缓冲器)

本质上是一段内存空间,用于处理二进制内存数据,用于表示固定长度的字节序列,可用toString()转换为字符。
特点:
大小固定且无法调整;性能较好,可以直接对计算机内存进行操作;每个元素大小为1字节.
创建:
Buffer.alloc(10); Buffer.allocUnsafe(10);Buffer.from(‘hello’);Buffer.from([105,108,101])

fs模块(文件系统)

fs是nodejs中的内置模块;可以对计算机中的磁盘进行操作.
使用:require(‘fs’);

  1. 写入(当需要持久化保存数据的时候,应该想到文件写入)
    异步: writeFile(文件名,写入的数据,可选项配置,回调函数)
    同步:writeFileSync(文件名,写入的数据,可选项配置)
    文件尾部追加异步:appendFile(文件名,写入的数据,回调函数)
    文件尾部追加同步:appendFileSync(文件名,写入的数据)
    流式写入: createWriteStream(文件路径,可选项配置)
    在这里插入图片描述
    2.文件读取
    异步读取:readFile(文件路径,选项配置,回调函数)
    同步读取: readFileSync(文件路径,选项配置)
    流式读取:createReadStream(文件路径,选项配置)
    在这里插入图片描述
    3、重命名、移动
    异步:rename(文件的当前路径,文件的新路径,回调函数)
    同步:renameSync(文件的当前路径,文件的新路径)
    4、文件删除
    异步删除:unlink(文件路径,回调函数)
    同步删除:unlinkSync(文件路径)
    常用的:rm(文件路径,回调函数)
    5、文件夹操作
    在这里插入图片描述在这里插入图片描述
    6、相对路径(./、…/)、绝对路径(//、/)
    在这里插入图片描述

7、__dirname保存当前文件所在目录的绝对路径;是Nodejs环境中的内置变量,常用于与文件名拼接成绝对路径。

path模块,操作路径

使用:const path = require(‘path’)
在这里插入图片描述

http(超文本传输协议)

使用:在这里插入图片描述

模块化

模块化有点:高复用性;防止命名冲突;高维护性
使用: module.export和require();

自定义的模块导入时,建议使用相对路径

使用时有几点注意: module.exports 可以暴露 任意数据 不能使用 exports = value 的形式暴露数据,模块内部module 与 exports 的隐式关系 exports = module.exports = {} ,require返回的是目标模块中 module.exports 的值

require导入模板的基本流程:

将相对路径转为绝对路径,定位目标文件
缓存检测
读取目标文件代码
自执行函数,通过arguments.callee.toString()查看自执行函数
缓存模块的值
返回module.exports的值

nodemon包

自动重启 node 应用程序插件

npm i -g nodemon

npm 和 yarn(包管理工具)

在这里插入图片描述
在这里插入图片描述

发布一个自己的npm包的流程

1、创建文件,使用module.export暴露插件函数
2、npm init -y初始化包,填写包的信息,版本号等
3、官网注册激活账号
4、运行npm login登录
5、运行npm publish发布
更新包:注意修改版本号然后,npm publish发布
删除包:npm unpublish (发布的24小时内可删)

express 官网

基于Nodejs开发的极简的web应用开发框架;是一个封装好的工具包,封装了很多功能。
express generator项目生成器项目,具体步骤看官网
重点记录一下express中间件:

中间件本质是一个回调函数,可以像路由一样访问请求对象(request),响应对象(response);用于提取公共的函数,简化代码。
全局中间件:每一个请求到达服务器之后都会执行全局中间件函数;express允许定义多个全局中间件。
路由中间件:对某一些路由进行功能封装使用

EJS模板引擎:用于分离用户界面和业务数据的技术
EJS官网
常用语法:

//需要执行的js代码
<%  js代码 %>
//取值的
<%= 变量 %>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/544657.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(学习日记)2024.03.12:UCOSIII第十四节:时基列表

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

ts的interface和type区别

1. 场景 interface 是用来描述对象类型的结构&#xff0c;可以定义对象的属性名和属性值的类型&#xff0c;也可以定义函数类型。interface User {name: string;age: number;sayHello(): void; } const user: User {name: "",age: 2,sayHello() {...} }可以用这个U…

数据结构 之 二叉树

&#x1f389;欢迎大家观看AUGENSTERN_dc的文章(o゜▽゜)o☆✨✨ &#x1f389;感谢各位读者在百忙之中抽出时间来垂阅我的文章&#xff0c;我会尽我所能向的大家分享我的知识和经验&#x1f4d6; &#x1f389;希望我们在一篇篇的文章中能够共同进步&#xff01;&#xff01;&…

【MySQL高级篇】08-事务篇

第13章:事务基础知识 #09-事务的基础知识#1.事务的完成过程 #步骤1&#xff1a;开启事务 #步骤2&#xff1a;一系列的DML操作 #.... #步骤3&#xff1a;事务结束的状态&#xff1a;提交的状态(COMMIT) 、 中止的状态(ROLLBACK)#2. 显式事务#2.1 如何开启&#xff1f; 使用关键…

StarRocks面试题及答案整理,最新面试题

StarRocks 的 MV&#xff08;物化视图&#xff09;机制是如何工作的&#xff1f; StarRocks 的物化视图&#xff08;MV&#xff09;机制通过预先计算和存储数据的聚合结果或者转换结果来提高查询性能。其工作原理如下&#xff1a; 1、数据预处理&#xff1a; 在创建物化视图时…

SpringAI——Java生态接入LLM

最近&#xff0c;Spring官网发布了SpringAI&#xff0c;可点此查看https://spring.io/blog/2024/03/12/spring-ai-0-8-1-released&#xff0c;对于SpringAI的介绍&#xff0c;可看官方文档&#xff1a;https://spring.io/projects/spring-ai#overview。 本文将使用SpringAI配合…

2024 年值得关注的三大 DevOps 趋势

在过去几年中&#xff0c;DevOps 世界以前所未有的速度发展&#xff0c;但它仍然是许多组织效率、创新和数字化转型的主要驱动力。 Google 的 2023 年 加速 DevOps 状态报告显示&#xff0c;公司的软件交付性能质量可以预测组织绩效、团队绩效和员工福祉。 2024年&#xff0c…

【自然语言处理】NLP入门(八):1、正则表达式与Python中的实现(8):正则表达式元字符:.、[]、^、$、*、+、?、{m,n}

文章目录 一、前言二、正则表达式与Python中的实现1、字符串构造2、字符串截取3、字符串格式化输出4、字符转义符5、字符串常用函数6、字符串常用方法7、正则表达式1. .&#xff1a;表示除换行符以外的任意字符2. []&#xff1a;指定字符集3. ^ &#xff1a;匹配行首&#xff0…

Stable Diffusion科普文章【附升级gpt4.0秘笈】

随着人工智能技术的飞速发展&#xff0c;我们越来越多地看到计算机生成的艺术作品出现在我们的生活中。其中&#xff0c;Stable Diffusion作为一种创新的图像生成技术&#xff0c;正在引领一场艺术创作的革命。本文将为您科普Stable Diffusion的相关知识&#xff0c;带您走进这…

第十二届蓝桥杯EDA省赛真题分析

前言&#xff1a; 第十二届蓝桥杯EDA比赛用的是AD软件&#xff0c;从第十四届起都是使用嘉立创EDA专业版&#xff0c;所以在这里我用嘉立创EDA专业版实现题目要求。 一、省赛第一套真题题目 主观题整套题目如下&#xff1a; 试题一&#xff1a;库文件设计&#xff08;5分&am…

双指针、bfs与图论

1238. 日志统计 - AcWing题库 import java.util.*;class PII implements Comparable<PII>{int x, y;public PII(int x, int y){this.x x;this.y y;}public int compareTo(PII o){return Integer.compare(x, o.x);} }public class Main{static int N 100010, D, K;st…

Java高级互联网架构师之路:排查当前JVM错误的步骤

程序 这个程序是有问题的,我们通过一些命令来分析这个程序究竟是哪里出了问题。首先把当前的程序通过SSH工具传输到centos系统中,之后我们就可以在linux环境下编译和执行。 注意一点:上面类的名字是Z,但是在linux环境下,我们将其改为了AA,并且文件名改为了AA,所以文章下…