node.js,npm规范简介

13 篇文章 0 订阅
5 篇文章 0 订阅
node.js,npm规范简介
I/O
  • input和output 输入和输出
  • 一般值对文件的读写操作
js在客户端运行
  • Js在客户端浏览器中运行,不能对客户端本地的文件进行读写操作
  • input:type=‘file’,文件上传,这种除外,但是得用户手动选择
js在服务器端运行,
  • (基于node运行),可以对服务器端的文件进行操作
  • node赋予js进行I/O操作的能力(内置模块fs)
window & global
  • 在客户端浏览器运行js,全局对象为window(提供了很多属性和方法)
  • 在node中运行js,js的全局对象是globa 或者是 当前模块
  • process:node中进程管理的属性
    • process.nextTick();下个任务
    • process.env
  • Buffer 文件数据流格式
  • setImmediate 立即执行(类似于setTimeout(func,0));
  • 在REPL命令中输出的this是global,但是在.js文件中输出的this是当前模块本身
npm
  • 模块管理

  • npm i xxx -g /安装到全局

  • npm i xxx /安装到本地项目

    • 把模块设置为开发依赖 npm i xx --save-dev
      • 开发依赖npm i xxx -D
    • 把模块设置为生产依赖 npm i xxx --save
      • 项目依赖npm i xxx -S
  • 在本地安装模块之前,最好先npm init -y,用来生成package,json模块配置文件

    • 把安装的模块生成配置清单,存放在package.json中,后期别人需要部署项目的时候,只需要执行npm i ,就可以把所有的依赖项重新安装一遍“跑环境”
  • 安装在全局的对任何项目都有作用(也有可能导致冲突),但是只能基于命令的方式管理,不能基于CommonJS中的require导入使用(通俗的说,不能导入到文件中基于代码来处理)

    • npm root -g 查看全局安装到的目录
    • 之所以可以使用命令操作,是因为在全局目录下生成了个xxx.amd
  • 安装在本地默认不能基于命令管理,但是可以导入到文件中基于代码使用,且只对当前项目有用

  • 在package.json中,可以基于script选项配置本地可执行的脚本命令

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uEFgg4yo-1660124961821)(en-resource://database/902:1)]
  • 在配置可执行脚本命令的时候,基于process的环境变量区分开发还是生产环境

CommonJs模块管理机制
  • AMD:require.js
  • CMD:sea.js
  • CommonJS:node.js
  • ES6: Module
  • 这些模块化思想,规定了在JS中我们如何创建,如何导入和导出
  • 内置模块:NODE中自带的
    • http/https 创建和管理服务器的模块
    • fs 基于JS进行I/O操作的
    • url 解析URL地址的
    • path 管理路径的
  • 第三方模块:基于npm安装的,别人写的
    • less
    • mime
    • qs
    • express
    • express-session
    • body-parser
  • 自定义模块:自己写的模块
  • node是基于CommonJS的思想
node中的模块化管理
  • 在node环境下中每创建一个js就是创建了个模块

  • 模块中的方法也是模块的私有方法,不同模块之间的同名方法不会冲突

  • module。exports就是NODE天生自带的用来导出模块中方法的方式

    • 这里面的属性方法就是暴露给外面调取使用的
  • require 是NODE天生提供的用来导入模块的方法

    • 语法:let [模块名] = require([模块的地址])
    • 可省略.js后缀名
    • 如果调取自己定义的模块名,则需要加/(根目录) ./(当前目录) …/(上级目录) 这三个中的一个的某一个
    • 不加上述地址,则先找第三方模块(安装在本地的),如果没有安装,则找内置模块,在没有就报错
    • 每一次导入模块就是把导入的模块中的JS代码从上到下执行一遍
    • 可在获取时直接结构,就不用B.方法了
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fRVbIcxz-1660124961822)(en-resource://database/903:1)]
  • 给文件写入内容

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FROnmoNW-1660124961822)(en-resource://database/904:1)]
    • fs.writeFile(‘./js/AA/txt’,‘哈哈哈哈’,‘utf-8’,err=>{console.log(err)}
    • readFile 读取文件
    • writeFile 写入文件
    • unlink 删除文件
    • appendFile 追加写入文件
    • fs.rmdir 删除目录
    • fs.mkdir 创建目录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值