(node.js)S3异步编程和包资源管理

包和NPM

包的概念

  • 包是在模块基础上更深一步的抽象
  • 包的作用:方便分发和推广基于 CommonJS 规范实现的 应用程序或类库;

包和模块的关系

  • 在node.js中,可以通过包来对一组具有相互依赖关系的模块进行统一管理,通过包的使用,可以将某个独立的功能封装起来。
    在这里插入图片描述
    如图所示,一个包通常包括一组相互依赖的模块,并提供一个出口模块,外部的模块通过出口模块,使用包的功能。

包的目录结构

规范的包结构作用
package.json(必须)在顶层目录的包描述文件,说明文件
bin(可有可无,根据package来决定)存放可执行二进制文件
lib(可有可无,根据package来决定)存放JavaScript文件
doc(无关紧要)存放文档
text(无关紧要)存放测试用例的代码

注意

  1. 包都要以一个单独的目录而存在;

  2. package.json 必须在包的顶层目录下;

  3. package.json 必须包含如下三个属性。

     1. name: 包的名字
     2.	version: 包的版本号
     3.	main: 表示包的入口文件
    
  4. 二进制文件应该在bin目录下;

  5. javaScript代码应该在lib目录下;

  6. 文档应该在doc目录下;

  7. 单元测试应该在test目录下;

  8. Node.js对包要求并没有那么严格,只要顶层目录下有package.json,并符合基本规范即可;

package.json文件属性说明
文件包含名称作用
name包的名称
description包的简介
version包的版本号
keywords关键词数组,用于在NPM中分类搜索
author作者
main配置包的入口,默认是index.js
dependencies包的依赖,npm自动根据依赖加载包
scripts指定运行脚本命令的NPM命令行缩写,如start

NPM

概念

NPM的全称是Node.js package manage,在Node.js中有两种含义:

  1. Node.js的开放模块登记和管理系统,是一个NPM网站。
  2. Node.js的包管理工具,一个命令行软件,用于快速的安装和管理模块。

常用命令

在这里插入图片描述

NPM的实用场景

  1. 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  2. 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  3. 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

NPM安装

随node安装而安装,一同安装的还有NPX

  • 查看版本号,在cmd中
npm -v
NPX
  • 作用:主要作用是简化执行node命令行工具(包命令)。

注意

  • 一般情况下,一个node命令行工具(如cnpm、webpack等),需要先下载,然后配置环境变量,才能使用。如果不配置环境变量,需要加上它的目录才能使用,使用npx可以简化node命令行工具的使用。

应用场景:

  • 在没有安装命令行工具的情况下,可以使用npx来运行,例如,如果没有安装cnpm,可以直接如下使用cnpm:

      npx cnpm -v
    

npx会先下载再执行。

  • 在没有全局安装命令行工具的情况下,如果是局部安装:

      npx cnpm -v,
    

npx会先在本地目录node_modules下的.bin下,找到相应的命令并执行。

npm安装包

  • 在cmd中直接安装markdown:
npx install markdown
会安装在node的安装目录为全局使用
  • 在包目录下执行安装会在本目录的最顶层为本文件夹下的文件提供使用

为自己的包创建package.json文件
在包文件夹下

npm init -y

自动生成jackage.json文件
在这里插入图片描述

  • 包的使用
var mm = require('mm')

cnpm的介绍及使用

介绍

国内的npm镜像
安装淘宝镜像

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

安装完成后查看版本

cnpm -v
>>>
cnpm@6.1.1 (C:\Users\17567\AppData\Roaming\npm\node_modules\cnpm\lib\parse_argv.js)
npm@6.14.3 (C:\Users\17567\AppData\Roaming\npm\node_modules\cnpm\node_modules\npm\lib\npm.js)
node@12.16.1 (E:\BigSchool\Nodejs\node.exe)
npminstall@3.27.0 (C:\Users\17567\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\index.js)
prefix=C:\Users\17567\AppData\Roaming\npm
win32 x64 10.0.18362
registry=https://r.npm.taobao.org

安装包命令与npm相同

异步编程

异步概念

console.log("1");
console.log("2");
function fun1(){
    setTimeout(function(){
        console.log("3")
    },1000)
    console.log("4")
};
console.log("5");
fun1();
console.log("6")

在这里插入图片描述
先输出函数中后跳出函数,当计时器到时间时,执行计时器函数。

回调函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值