nodejs入门基础(复习)

https://study.163.com/course/courseLearn.htm?courseId=1210098848#/learn/video?lessonId=1281066155&courseId=1210098848

nodejs基础学习

node初识

node.js是基于JavaScript的运行环境,使用的是google v8的引擎

使用事件驱动和异步的非阻塞I/O模型

前端学习会比较方便,因为语言语法是一样的,只是api不一样,面向的功能不一样,对于前段来说可以简单的去定义接口api

nodejs安装

可以参考菜鸟教程的nodejs安装,个人觉得写得很详细了,而且电脑已经安装过就不实操了

https://www.runoob.com/nodejs/nodejs-install-setup.html

nodejs REPL交互解释器

在命令行中输入node之后会打开交互解释器

类似浏览器的控制台的使用

下划线_可以方便的复制上一条输出

另外.help里面还有很多方法

nodejs编辑器和npm

直接在vscode中创建js文件,正常执行即可,也可以用vscode的插件

node demo1.js

npm一般是包括在nodejs中的,是我们对项目依赖包的快速下载

记得安装淘宝镜像源

image-20200727121647454

npm install XXX -g全局安装

npm install XXX --save依赖到项目

下面试一下express

新建demo01.js

// 使用express和npm
// npm install express --save
let express=require('express')
let app=express()
app.get('/',(req,res)=>{
   
    res.send('hello')
})

app.listen(8000,()=>{
   
    console.log("启动",'http://localhost:8000')
})

在命令行运行

node demo01.js

image-20200727122625122

node的模块运行机制

commonjs

文件即模块

通过require引入exports导出的模块

新建demo02

image-20200727123223886

image-20200727123251473

也可以这样导出

image-20200727123442733

image-20200727123507274

不过还是推荐用module.exports的形式优先级要高一些而且两种同时用会乱掉

nodejs模块路径

在require中使用相对路径引用自己写的文件

如果没有相对路径会优先找当前目录下的node_modules,逐级往上找

nodejs的包

就是我们node_modules中的一个目录形成的模块,配置信息一般在package.json

image-20200727124046692

npm init 用来自定初始化包

nodejs的文件系统

nodejs是服务器语言,所以一定可以使用file

即node中的fs模块

const fs = require('fs')

新建demo03

同步写

下面先使用同步的方式来写入一个文件(等待写入完成才会有下一步)

const fs =require('fs')

//同步打开文件
let fd=fs.openSync('./test1.txt','w')
console.log(fd)

//写入内容
let str ='hello\n'
fs.writeFileSync(fd,str)

//退出文件
fs.closeSync(fd)

image-20200727124809402

异步写

下面来试试异步的文件写入

const fs =require('fs')

//异步打开,使用回调函数
fs.open('text2.txt','w',(err,fd)=>{
   
    fs.writeFile(fd,'hello2',(err)=>{
   
        if(err){
   
            console.log(err)
        }
        fs.close(fd,(err)=>{
   
            if(err){
   
                console.log(err)
            }
            console.log('关闭完成')
        })
    })
})

console.log('index2')

image-20200727125400716

下面是同步和异步的区别

同步和异步是相对于操作结果来说,会不会等待结果返回

阻塞就是在等待时你不可以去干其他的事情,非阻塞就是在同样的情况下,可以同时去干其他的事情。阻塞和非阻塞是相对于线程是否被阻塞。

文件流写

文件还可以使用流写入

image-20200727130647231

异步读

image-20200727131913323

读出来的是buffer二进制数据的形式,转化成字符串就行了

image-20200727132121503

下面尝试把一张图片读入再写入

异步读写文件

新建index5.js,引入test.png

image-20200727132828053

流读写文件

image-20200727133632189

使用pipe管道来读写流
let fs=require('fs')
let rs=fs.createReadStream('./test.png')
let ws=fs.createWriteStream('./test_p.png')
//创建管道,读取流入到管道到写出流
rs.pipe(ws)
console.log('index7')

和上面index6的效果一样但是简便很多,用到pipe管道函数

通过node删除文件、读取文件目录

同样是使用fs文件系统

image-20200727134352918

删除文件用unlink,读取目录用readdir

image-20200727134541062

创建删除目录

let fs
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值