Node详细解释[带你快速入门Node](2)

本文介绍了Node.js中包的概念、npm的用途及其常见命令,包括初始化、安装、事件模块(如events)和文件系统模块(fs)的操作,如文件读写、重命名和删除,以及同步和异步处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

续上一篇node入门的补充.

包和npm

1.包概念

在Nodejs中包由由包结构和包描述文件两个部分组成.

包结构:用于组织包中的各种文件,例如:源代码文件、资源文件

包描述文件:描述包的相关信息,例如:package.json、bin、lib等文件

2.npm

npm是随着Nodejs一起安装的一个包管理工具,它具有以下用途:

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。

  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

3.npm常见命令

    1.npm init  初始化

(会在根目录下生成一个package.json的文件)

        npm init -y (初始化走默认值,不需要在设置)

      难点:初始化的文件的父级文件夹名字不要取中文,要用英文

2. npm install  安装      

 安装命令执行之后,会在项目的根目录下产生有一个node_modules的目录(以后所有下载的包都会安装到该目录)

简写:npm i

 安装分为本地安装和全局安装:
                本地安装:适用于绝大多数项目开发包
                全局安装:一般用于安装命令类型包

本地安装:将包安装到项目中
                    安装到项目/生产依赖:
                        npm install  包名                   新版nodejs的写法
                        npm install  包名   --save          旧版写法

                        简化为:
                            npm install 包名  -S                npm i 包名 -S
                    安装到开发依赖
                        npm install  包名   --save-dev
                            简化为:
                                npm install 包名 -D             npm i 包名 -D
                    注意:修饰符可以在前、在后
                        npm i 包名 -D
                        npm i -D 包名
            全局安装:将包安装到计算机上(默认C盘)
                        npm i 包名 -g  


            区别:
                生产依赖:包不仅在开发阶段要使用,在生产阶段也要使用
                开发依赖:只在开发阶段使用

安装指定的版本:

一般安装包时,都是默认下载最新的包。

但是可以用 npm i 包名@版本号 安装你需要的版本

如果不知道版本号,也可以用 npm view 包名 versions 来查询npm服务器存在的包版本信息

这里也有卸载的npm命令:

     npm uninstal 包名

     npm rm 包名

events模块

events模块是node.js内置的模块

 const e=require("node:events")
  const emitter= e.EventEmitter;

常用方法:

  • on() 注册

  • off() 解绑

  • once() 一次

  • emit() 触发事件

  • addListener()

  • removeListener() 删除

  • removeAllListener(0) 删除所有

文件系统(fs)

Nodejs内置了用于操作文件的模块:fs

常见的操作有文件操作、文件夹操作,操作的方案有同步和异步

文件操作

常见的方法(异步):

  • readFile() 读取   

  • writeFile() 写入

  • rename() 重命名

  • unlink() 删除

const fs=require('fs');

//注意:若文件不存在,则会先创建文件,再写入(不会创建文件夹)

fs.writeFile("./info/info.txt","我好",err=>{
    if(err){
        console.log('写入失败:',err);
        return;
    }
    console.log("写入成功");
})

// fs.writeFile("./data.txt","我好",{flag:"a"},err=>{   
//     if(err){
//         console.log('写入失败:',err);
//         return;
//     }
//     console.log("写入成功");
// })

// fs.writeFileSync("./data.txt","hello jack",{flag:"a"})


//剪切

// fs.rename("./msg.txt","../data.txt",err=>{
//     if(err){
//         console.log('写入失败:',err);
//         return
//     }
//     console.log('成功');
// })

// fs.renameSync("../data.txt","./data.txt")
// console.log('成功');

//删除文件
// fs.unlink('./dat.txt',err=>{
//     if(err){
//         console.log('失败',err);
//         return
//     }
//     console.log('成功');
// })

// fs.unlinkSync("./dta.txt")


//读取文件
// fs.readFile("./data.txt",(err,data)=>{
//     if(err){
//         console.log('读取失败:',err);
//         return;
//     }

//     // console.log(data);//Buffer
//     console.log(data.toString());
// })

// let buf=fs.readFileSync("./1.html")
// let buf=fs.readFileSync("./data/1.wmv")
// console.log("读取成功");
// console.log(buf);
// console.log(buf.toString());//非文本类型文件,不可以toString()

文件夹操作

常见方法:

  • mkdir() 创建

  • rmdir() 删除空目录

  • readdir() 读取目录

  • stat() 读取文件的信息

    • stats对象

      • isDirectory() 是否为文件夹

      • isFile() 是否为文件

const fs=require("fs");


//创建文件夹
// fs.mkdir("./mock",err=>{
//     if(!err){
//         console.log('成功');
//         return
//     }
//     console.log('失败:',err);
// })

// fs.mkdirSync("./route")


//读取目录
// fs.readdir("./data",(err,files)=>{
//     if(err){
//         console.log("失败;",err);
//         return
//     }
//     console.log(files);
// })

// let files=fs.readdirSync("./data")
// console.log(files);

//删除
// //删除空目录
// fs.rmdir("./data",err=>{
//     if(err){
//         console.log('失败',err);
//         return
//     }
//     console.log('成功');
// })

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿勋w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值