1.node 是一个运行时(runtime)的javascript
与javascript 区别:
javascript 运行在浏览器端 操作DOM 与 BOM
node 运行在服务器端 操作服务器
2.node 常用模块分为两种核心模块和内置模块(内置模块需要使用require 引入)
核心模块: buffer module process
内置模块: fs http os(freemen) path event util
第三方模块需要进行安装
npm i download-git-repo -s // 这个是github 上的下载
npm i ora // 这个是一个进度条
****
下载模块例子
const download = require('download-git-repo')
const ora = require('ora')
const process = ora('下载项目')
process.start()
download('789:sfja.git', 'test', err=> {
if(err) {
process.fail()
} else {
process.success()
}
})
解析: download 用法
第一个参数是下载文件的地址
第二个参数是下载后存放的文件夹名字
第三个是 最后的回调函数 如果err 存在那么下载失败
****
3. promisify 实现条件承若执行
const repo = '789:sfja.git' const dir = 'test' clone(repo, dir)
async clone(repo, dir){ const {promisify} = require('util') const download = promisify(require('download-git-repo')) const ora = require('ora') const process = ora('下载项目') process.start() try{ await download(repo,dir) }catch() { process.fail() }
} 4. fs 模块简单使用 const fs = require('fs') // 同步调用 const data = fs.readFileSync('./data.js') console.log(data) // 打印出来是一个buffer 是一个将2进制转成16进制 fs.readFile('./data.js','utf-8', function(err,data){ if (err) { console.log(err) } else{ console.log(data) } }) 5.buffer 是处理二进制文件 alloc 用来分配内存空间 const buf1 = Buffer.alloc(10) const buf2 =Buffer.from('a') console.log(buf2,buf2.toString()) 将二进制进行🔗 const buf3 = Buffer.concat([buf1,buf2]) 6.http const http = require('http') const server = http.createServer((request, response)=> { const {url, method} = request console.log(response.end('人生若只如初见')) }) server.listen(3000) 7. stream 流 数据一点一点的写入 数据一点一点的输出 const fs = require('fs') const rs = fs.createReadStream('./01.png') const rs2 = fs.createWriteStream('./02.png') rs.pipe(rs2) 8. vue-auto-cli