node知识点小结(一)

1、node概念

node是一个平台 基于c++开发

不是有js才有node 是因为node的平台,js才可以运行在服务器端

学习资料https://nodejs.org/dist/latest-v14.x/docs/api/

学习node达到水平:
登录注册、增删改查。
基本的后台管理系统需要独立实现。
能理解清楚前后端分离思想。
会使用接口
在实际开发中,懂得如何和后台进行交互

2、环境变量配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、包管理器以及模块化

npm其实是一个平台,上面放了很多包。自己也可以定义包放在上面。

npm是一个国外的平台,所以有时候下载会比较慢。可以使用国内镜像cnpm或者yarn(缓存)

如果网络比较慢,有时候会下载失败。需要重新下载。

如果项目需要拷贝的时候,最好删除node_modules文件夹。拷贝完了重新下载。

cnpm装出来的包比较乱,不影响使用。一般网络情况允许的情况下,还是使用npm

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

cnpm功能和npm一样,使用方法一样只是多了一个c cnpm install

安装 cnpm install 文件名字@版本号 写依赖-S/-D/-g

包管理工具只是node的一个功能而已。

模块化可以看另一篇文章:https://blog.csdn.net/weixin_53037175/article/details/111399717

4、执行node文件

执行js相当于在服务器环境下执行: node 文件名 终止代码ctrl+c

执行文件的时候,找到文件所在目录,直接在node环境下(或者在目录下cmd,前提要有node环境)执行文件或者文件名字,不能取node

5、global

global是全局对象,可以直接使用,不需要单独引入.

node文件相当于是服务器的不是客户端的

服务器端没有了window,有global

global相当于客户端中的window

global.console.log('这是打印信息');

定时器例子:

global.setInterval(function(){
	console.log(1111);
}, 1000)
global.setTimeout(()=>{
  console.log('这是单次定时器')
}, 100)

6、寻找路径

当前文件所在目录

console.log(__dirname);

当前文件地址

console.log(__filename);

7、const fs

导入模块
const xxx =require(‘模块’)

require(模块) 首先判断是否有模块。

内置的模块一般是已经定义好的。

自己写的或者下载的模块要放在node_modules内部,最后新建该模块的文件夹,因为执行的时候首先会去node_modules内部寻找该模块,找到就进行加载。

一般默认index.js是主入口文件,如果别的文件作为主入口,一定要配置package.json{“main”:“主入口文件”}

如果index.js和package.json同时存在,以package.json配置为准

如果没有package.json和index.js,会报错:Cannot find module “xxx”。

导出则:exports.变量=值

fs是一个内置的模块,需要单独引入。

模块引入的时候,一般使用const

fs是文件系统,一般用来和文件有关的操作

const fs=require('fs');

写文件

fs.writeFile('文件名','数据',(err)=>{})
fs.writeFile('my.xls','hello node',(err)=>{
	if(err) throw err;
	console.log('文件书写成功')
 })

删除文件

fs.unlink('文件名字',(err)=>{})
fs.unlink('./my.xls',(err)=>{
	if(err) throw err;
	console.log('文件删除成功')
})

读文件

fs.readFile('./my.txt','utf-8',(err,data)=>{
if(err) throw err;
	// data默认接收到的数据是buffer。如果需要转化。
	// 两种方式1、data.toString() 2、增加参数'utf-8'
console.log(data)
console.log(data.toString())
})

新建文件夹

fs.mkdir('文件夹名字',(err)=>{}) 如果该目录存在,去创建会报错
fs.mkdir('jd',(err)=>{
if(err) throw err;
})

删除目录

fs.rmdir('jd',(err)=>{
	if(err) throw err;
 })

读取文件夹

 fs.readdir(__dirname,(err,files)=>{
	if(err) throw err;
// files存储的是当前文件夹下的所有文件
console.log(files); 
})

stat获取当前路径的状态

fs.stat(__dirname,(err,stats)=>{
if(err) throw err;
	// isFile()判断是否是文件
    console.log(stats.isFile());
	// isDirectory()判断是否是目录
    console.log(stats.isDirectory())
 })

8、创建文件并进行遍历输出名称

创建淘宝文件夹以及里面其他文件

const fs=require('fs');

function demo(proname){
	return {
		proName:proname,
		prolist:[
			{
				name:'css',
				type:'dir'
			},
			{
				name:'images',
				type:'dir'
			},
			{
				name:'js',
				type:'dir'
			},
			{
				name:'index.html',
				type:'file'
			}

	}
}

function createDemo(proname){
	var str=`<!DOCTYPE html>
	<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Document</title>
	</head>
	<body>
		
	</body>
	</html>`;
	var pro=demo(proname);
	//创建主目录
	fs.mkdir(__dirname+'/'+proname,(err)=>{
		if(err) throw err;
	    //对其里面文件进行遍历
		pro.prolist.forEach((item,index)=>{
			if(item.type=='dir'){
				//完整路径:文件夹所在目录/主目录/文件夹名
				fs.mkdir(__dirname+'/'+proname+'/'+item.name,(err)=>{
				})
			}else{
				fs.writeFile(__dirname+'/'+proname+'/'+item.name,str,(err)=>{
				})
			}
		})
	})
}
createDemo('taobao')
  • 10
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值