1.node操作
win+r+cmd
打开命令行终端node -v
或者node --version
检查版本号node '文件名'
_文件名不要写成_node.jscd..
返回上级目录dir
查看目录tree
查看偶有文件夹和子文件夹里的内容cd 文件夹名称
进入那个文件夹盘符:
切换盘符- 创建文件夹
mkdir 你要创建的文件夹名称
md 你要创建的文件夹名称
- 删除文件夹
rd 你要删除的文件夹的名称
(只能删除空文件夹)rd /s /q 你要删除的文件夹名称
(强制删除文件夹)
xcopy 你要复制的文件夹名 复制以后的文件夹名
复制文件夹echo 你要写入的内容>你指定的文件
向文件里写入一些内容,完全覆盖式的写入echo 你要写入的内容>>你指定的文件
向文件里写入一些内容,追加type 你要查看的文件名
查看文本里的内容化ren 你要修改的文件 你要改成什么名字
给文本重命名del 你要删除的文件名
删除文件copy 你要复制的文件名 复制以后的文件名
复制文件remove 你要移动的文件名 你要移动到哪一个目录
移动文件名cls
清屏ipconfig
查看电脑ipping www.baidu.com -t
测试网速systeminfo
查看电脑信息- nodejs 的特点
- 是一个基于V8引擎的JavaScript运行环境
- 单线程
- 非阻塞I/O 也就是异步,通过回调函数,
- 事件驱动
2.node模块化
2.1.内置模块
- (核心模块包括 os(操作系统)、fs(文件系统)、http(网络系统)),安装node这个环境的时候就自带有的模块(js文件),不需要下载,导入进来使用就好。
- fs(文件系统)
- 专门来读取写入文件内容的 ```javascript
- 导入模块用
require()
方法
- 导入fs模块
const fs = require('fs')
- fs 模块的几个方法
fs.readFile()
专门用来异步读取文件的方式 语法:fs.readFile('你要读取的文件路径',读取文件格式(选填),读取文件成功的回调函数)
`fs.readFile(‘./test.txt’,’utf-8’,function(err,data){ //函数是读取文件完成后执行的回调函数 //接受两个形参 err=>读取失败的时候的失败信息 data=>读取成功的时候的读取的内容
if(err){ return console.log(err) } console.log(data) })`->读取的内容默认是buffer格式的字符串,我们看不懂,计算机看的懂
->如果想读取一个我们看的懂得文件,那么要在第二个参数设置'utf-8'
2.fs.readFileSync()
专门用来同步读取文件的方式
语法:fs.readFile('你要读取的文件路径',读取文件格式(选填))
let data = fs.readFile('你要读取的文件路径','utf-8')
fs.writeFile()
专门用来异步写入文件的方式,覆盖式的写入 语法:fs.writeFile('你要写入的文件路径',你要写入的内容,读取文件成功的回调函数)
fs.writeFile('./test.txt',你要写入的内容,function(){ console.log('写入成功了') })
fs.writeFileSync()
专门用来同步步写入文件的方式 语法:fs.writeFile('你要写入的文件路径',你要写入的内容)
fs.writeFileSync('./test.txt',你要写入的内容
console.log(‘写入成功了’)fs.appendFile()
专门用来异步写入文件的方式,追加式的写入 语法:fs.appendFile('你要写入的文件路径',你要写入的内容,读取文件成功的回调函数)
fs.appendFile('./test.txt',你要写入的内容,function(){ console.log('写入成功了') })
```
2.2.http内置模块
- 这个模块是专门用来创建http服务的,只能支持http协议
- 就是可以把电脑上的命令行窗口当成一个服务器来使用 ```javascript
- 导入http模块 const http = require(‘http’) 导入fs模块 const fs = require(‘fs’)
- 创建http服务
const server = http.createServer(function(req,res){
+这个函数是前端的每一个请求都会执行这个函数
+只有我在监听这个端口号有请求过来的时候,就会执行
+这个参数接收两个形参
if(req.url===’./index.html’){ fs.readFile(‘./index.html’,’utf-8’,function(err,data){-req 表示每次请求的信息
req.url 表示本次请求的地址
-res 表示每次请求的响应
res.end() 表示本次给回的响应
+通过不同的url做不同的事情
}) } console.log(‘我执行了,表示有请求进来了’) })if(err) return console.log(err)
//响应之前设置响应头
res.setHeader('Content-Type','text/html;charset=utf-8')
res.end(data)
- 监听一个端口号(端口号是0-65535,0-1023不推荐使用) server.listen(8080,function(){ console.log(‘监听8080端口成功’) })
- 代码写完以后,当你在终端运行这个文件的时候 +你的那个终端就是一个服务器了 +你就可以打开浏览器去访问localhost:8080 ```
2.3.自定义模块
- 自定义模块就是在一个js文件里写入一些方法,然后要把js文件里的方法导出,外部才能接收。
- 每个js文件里自带 module对象,每个module对象里自带exports对象,module.exports就是这个文件向外导出的内容,我们向外暴露该对象内容就可以了
funtion fn1(){
console.log('我是a模块里的fn1方法')
}
function fn2(){
console.log('我是a模块里的fn2方法')
}
module.exports.fn1 =fn1;
module.exports.fn2 =fn2;
- 模块导入的方法
- ·导入模块用
require()
方法 - 在b文件里导入我们自定义的模块 文件名
- ·导入模块用
- 为什么浏览器里面不需要导出直接导入就行
- 之所以你浏览器不用导出,是我因为我们的浏览器里有一个顶级对象window
- 你写在全局的变量都是挂在window上的
- 在一个html文件里,多个js文件公用一个window对象
- 在node环境下
- 我们没有真正意义上的全局对象
- 所以我们需要在一个文件导入,一个文件导出的时候才能使用
- 我们每个js都是独立模块,都会独立模块作用限制着
- 在你写a.js文件里的内容,再写b.js文件里是使用不了的
- 第三方模块