Node.JS第二讲笔记


大家好,欢迎关注微信公众号:雄雄的小课堂


package包

包结构

包其实就是一个压缩文件,解压之后还原为目录,符合规范的目录,应该包含如下文件:

  • package.json:描述文件

  • bin:可执行的二进制文件

  • lib:Js代码

  • doc:文档

  • test:测试文件


包描述文件package.json

1.包描述文件用于表达非代码的相关信息,它是一个json格式的文件-package.json,位于包的根目录下,是包的主要组成部分

2.包中的主要字段

name  description version  keywords maintainer contributors bugs licenses repositories dependencies  homepage os cpu engine builtin directoies implements  scripts author bin main devDependencies

NPM(Node Package Manage)

介绍说明

1.CommonJs包规范是理论,NPM是一种实践

2.对于Node而言,NPM帮助起完成了第三方模块的发布、安装和以来等,NPM就是管理下载一些东西的。

NPM的命令

1.npm -v:版本

2.npm search 包名:搜索模块包

3.npm install 包名:安装包名

4.npm install 包名 -g:全局模式安装包(全局安装的包一般都是工具,计算机的工具,比如编辑CSS,JS文件)

初始化

命令:npm init,后面直接回车即可,然后就会发现本地多了个package.json文件

安装包

命令:npm install math,回车即可下载,下载完了之后多了个node_modules文件夹

在index.js中引入模块

直接在index.js中写如下代码:

var math = require("math");
console.log(math.add(1,1));

DOS直接执行:

node index.js
执行结果为:2(1+1的和)

删除包名

命令:npm remove 包名

package-lock.json文件

通过该文件绑定依赖

安装并保存依赖

命令:

npm install math --save

执行完之后在package.json中会多了一个键dependencies,依赖

CNPM

中国的npm,阿里镜像,需要安装阿里镜像,命令如下:

npm install -g cnpm --registry=https://registry.npm.taobao.org

####总结

  1. 通过NPM下载的包都放到node_modules文件夹中

  2. 通过NPM下载的包直接通过包名引入

  3. 如果删除了下载的包,执行引入代码时,Node会从文件上一级去寻找,一直找到相应的包,否则报错

Buffer缓冲区

1.从结构上看Buffer非常像一个数组,他的元素为16进制2位数,传统的数组并不能保存二进制数据,而Buffer就是专门保存二进制的数据

2.实际上一个元素就表示内存中的一个字节

3.实际上Buffer中的内存不是通过JavaScript分配的,而是在底层C++申请的

4.我们可以通过Buffer来创建内存中的空间

使用Buffer

1.不需要引入任何的模块,直接使用,就像内置对象一样。

eg:

var str = "hello";
var buf = Buffer.from(str);
console.log(buf);

运行结果:

<Buffer 48 65 6c 6c 6f>
var str = "hello";
console.log(buf.length);  //当前字符占内存的大小  结果为5
console.log(str.length);  //字符串的长度 结果为5var str = "你好";
console.log(buf.length);  //字符串的长度 结果为6,一个汉字占3byte

创建指定大小的Buffer:

var buf = new Buffer(1024);   //1024字节,也就是1kb

这种方式已经废弃了.

用下面的这一种:

var buf = Buffer.alloc(1024);

另一种方式

var buf1 = Buffer.allocUnsafe(10);
console.log(buf1);

运行结果:

<Buffer b0 3d bb 97 00 02 00 00 b0 44>

区别:

  • alloc:相当于自习课上,上完之后人走了之后书也拿走了

  • allocUnsafe:相当于自习课上,上完之后人走了之后书没有拿走,有残留

API文档地址

http://nodejs.cn/api/  中文文档地址

存放数据

var buf = Buffer.alloc(10);
buf[0] = 0xaa;
buf[1] = 12;
buf[2] = 255;
console.log(buf);

运行结果:

<Buffer aa 0c ff 00 00 00 00 00 00 00>

如果写buf[10]的话,即使越界了也不会报错,但是也不会显示出来

文件系统

简单来说文件系统就是通过node来操作系统中的文件

同步文件的写入

1.打开文件

//fs.openSync(path,flags{,model})  语法
//引入
var fs = require("fs");
//打开文件
var fd = fs.openSync("hello.txt","w");
//console.log(fd); //返回3,证明打开成功fs.writeSync(fd,"今天周五",3);
fs.close(fd);

执行之后会自动在当前文件夹下面创建hello.txt文件,里面添加内容:今天周五

fs.writeSync(fd,"今天周五",3);  3表示前面的空格。

2.向文件流中写入内容

3.保存或者关闭文件

异步文件的写入

实例:

var fs = require("fs");
fs.open("info.txt","w",function(err,fd){console.log(err);if(!err){fs.write(fd,"今天好开心",function(err,fd){if(!err){console.log("写入成功");fs.close(fd);}else{console.log("写入失败");fs.close(fd);}});}else{console.log(fd);}
});

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

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

相关文章

asp.net core MVC 过滤器之ActionFilter过滤器(二)

简介 Action过滤器将在controller的Action执行之前和之后执行相应的方法。 实现一个自定义Action过滤器 自定义一个全局异常过滤器需要实现IActionFilter接口 public class ActionFilter : IActionFilter { public void OnActionExecuted(ActionExecutedContext context) …

【最全最详细】publiccms使用教程

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂拉取项目&#xff08;项目部署阶段&#xff09;1.首先需要从gitee中拉取项目&#xff0c;地址为&#xff1a;public cms项目地址 &#xff0c;在idea中点击文件--》新建--》来自版本控制的项…

越努力越幸运,三年了!!!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”今天非常的开心&#xff0c;因为考了三年的驾照终于考完了。在大厅候考的时候&#xff0c;从10.40等到了1.40,坐在下面能看到LED上有自己的名字&#xff0c;但是前面等待的有200多人………

为什么我们要使用Async、Await关键字

前不久&#xff0c;在工作中由于默认&#xff08;xihuan&#xff09;使用Async、Await关键字受到了很多质问&#xff0c;所以由此引发这篇博文“为什么我们要用Async/Await关键字”&#xff0c;请听下面分解&#xff1a; Async/Await关键字 Visual Studio&#xff08;.net fra…

一次惊险的跳槽面试经历(阿里/美团/头条/网易/有赞...)

转载自 一次惊险的跳槽面试经历&#xff08;阿里/美团/头条/网易/有赞...) 每次说因为生活成本的时候面试官都会很惊奇&#xff0c;难道有我们这里贵&#xff1f;好想直接给出下面这张图&#xff0c;厦门的房价真的好贵好贵好贵。。。 面试过程 有兴趣加入阿里的欢迎发简历…

利用bladex+avue实现一对多的关系

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”今天&#xff0c;记录一篇技术文章吧&#xff0c;也是解决了好久才解决掉的&#xff08;说来也惭愧&#xff09;。涉及技术前端&#xff1a;vue&#xff0c;element ui后端框架&#xff…

.NET中的高性能应用

本文要点 .NET自4.0以来得到了大幅的性能提升&#xff0c;很值得重新考虑一下基于旧版本.NET框架所做的假定。在讨论性能时垃圾回收是个重复出现的主题&#xff0c;它带来了许多CLR和语言的提升&#xff0c;比如引用返回和ValueTask在内存分配上更细粒度度量的性能分析API会成…

利用bladex+avue实现下拉数据源展示

“ 大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂???? ”昨天给大家整理了下如何使用bladex实现多表查询的方法&#xff0c;今天我们趁热打铁&#xff0c;顺便看看下拉列表的实现。 需求 我们经常会有这样的需求&#xff0c;…

汇编语言(一)之反转字符串输出

BASED ADDRESSING反转输出 程序运行&#xff1a; 代码&#xff1a; datas segmentstring db BASED ADDRESSING$ count dw $-string-1 ;计算string的长度&#xff0c;$为当前地址&#xff0c;-1为去掉字符串结束符$srcsTip db SRC string:$ dstsTip db 0…

前后端分离项目部署上线详细教程

“ 大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂???? ”今天&#xff0c;给大家分享的是&#xff0c;SpringbootVue项目如何部署上线的详细步骤。 代码编辑器 前端&#xff1a;Webstorm 2021.1.2 后端&#xff1a;IntelliJ …

.Net Core2.0下使用Dapper遇到的问题

今天成功把.Net Framework下使用Dapper进行封装的ORM成功迁移到.Net Core 2.0上&#xff0c;在迁移的过程中也遇到一些很有意思的问题&#xff0c;值得和大家分享一下。下面我会还原迁移的每一个过程&#xff0c;以及在此过程中遇到的问题和处理这些问题的方法。 一、迁移前的…

汇编语言(二)之数值求和

输入一串数字&#xff0c;求和 运行结果&#xff1a; 程序代码&#xff1a; datas segmentx db ? y db ? z db ?xInputPrompt db Enter a number x$ yInputPrompt db 0dh,0ah,Enter a number y$ zOutputPrompt db 0dh,0…

avue中怎样隐藏新增和编辑的按钮

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂????”????‍♂️今天给大家分享的技术是&#xff1a;avue中如何设置新增和编辑的按钮隐藏掉。????‍????涉及技术????前端&#xff1a;avue????后端&…

.NET跨平台实践:Linux .Net Core自宿主应用程序瘦身记

一&#xff0c;.NET Core 自宿主应用程序个头有点大 发布.NET Core应用程序有两个方式&#xff0c;一种是“便携式”&#xff0c;一种是“自宿主式”。便携式发布时&#xff0c;目标程序不带.net core运行环境&#xff0c;所以“个头”很小&#xff0c;可能只有几十K几百K字节…

汇编语言(三)之判断数值是否大于42H并统计个数

在内存中一串数值&#xff0c;判断数值是否大于42H并统计个数 程序运行&#xff1a; 代码&#xff1a; datas segmentidata equ 100hnums db idata dup(41h,42h,43h,42h,41h,43h,30h)count dw $-numsup dw 0down dw 0upNumber …

idea打war的问题

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;&#x1f449;雄雄的小课堂&#x1f448;。 &#x1f468;‍&#x1f3eb;前言 今天&#xff0c;记录个到现在为止还没搞清的问题&#xff0c;这个问题浪费了我几个小时的时间&#xff0c;基本上昨天晚上…

汇编语言(四)之比较字符串

输入两个字符串&#xff0c;比较字符串是否相同 程序运行&#xff1a; 代码&#xff1a; datas segmentstring1MaxLength db 0ffh,0 string1 db 100h dup(?)string1Number dw 0 string2MaxLength db 0ffh,0 string2 db 100h dup(?) string2Number…

.NET平台微服务项目汇集

最近博客园出现了一篇文章《微服务时代之2017年五军之战&#xff1a;Net PHP谁先死》&#xff0c;掀起了一波撕逼&#xff0c;作者只是从一个使用者的角度来指点江山&#xff0c;这个姿势是不对的。.NET Core就是专门针对模块化的微服务架构而设计&#xff0c;在微服务架构这方…

idea打war包时,JDK版本的问题解决方式

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂????。”????‍????前言今天&#xff0c;记录个到现在为止还没搞清的问题&#xff0c;这个问题浪费了我几个小时的时间&#xff0c;基本上昨天晚上啥也没干&#xff0…

汇编语言(五)之数组中正数和负数分离

将数组中的正数和负数分离到两个数组 程序运行&#xff1a; 代码&#xff1a; datas segmenta dw -1,2,3,4,-2,-3,5,6,7,8,9,-10,13,15,-5,-24,-36,34,53,-90count dw ($-a)/2p dw 20 dup(?)n dw 20 dup(?)pNumber dw 0…