梳理19年上半年图文记录笔记(node,nest,taro)

这篇笔记,是自己学习的学习大杂烩,主要用于记录,方便自己查找,其中有些,现在自己看起来都有点好笑,因为错的太低级了,不过这也是成长,后面会梳理好的。

一、node 方面

##1.node 的安装
三种方式: 1.官网下载 安装包 ,进行安装
2.通过docker 来进行 安装(https://www.cnblogs.com/justdoyou/p/10116995.html)
3.通过nvm 来进行镜像管理安装(nvm:nodejs 版本管理工具,npm:nodejs 包管理工具)  安装教程https://www.jianshu.com/p/622ad36ee020
 nvm ls-remote    查看可以安装的node 远程所有版本
 nvm install v6.11.0   安装指定版本
 nvm  install --lts  安装最新的稳定版本
 nvm  install  node  安装最新的不稳定版本
 nvm  ls  查看 所有安装版本
 nvm use  切换版本(v6.11.0)
 node -v 查看 当前 的node版本

##2.创建nodejs 的项目
 @@1. 在 19learn新建 node-demo/node-one文件夹,用终端进入的该文件夹
@@2. 通过npm init 来初始自定义项目信息,或者通过npm init -y 来使用默认的系统初始化信息,还可通过yarn init -y 用创建package.json 初始化文件
@@3.在node-one文件中新建index.js文件,内容为,consolse.log("hello ~ node ")

@@4.通过node 文件名运行 ,查看效果
   node index   输出:hello~ node
指定版本运行:nvm run v6.11.0 index.js  

 查看项目运行的 node 的版本:  nvm run node --version 
 项目中可新建,.mvmrc 文件,来指定具体的版本


##3.node 第三方库包使用
###使用内置模块
 @@1. 官方查 文档 
 @@2.加载要使用库 const  os =require('os')
 @@3.直接使用   console.log(os.hostname())

###安装网络三方的模块库
使用 npm 安装:npm install request --save
使用yarn 安装: yarn add request  
安装过后,会有一个 node_modeules 目录

使用:  通内置模块一样
const request=require('request')

### 本地项目的工具库使用
在node-one文件夹下新建src文件夹,在新建greeting.js工具文件
 greeting.js 写入:
   const hello =()=>{
 console.log("hello 是 自定义工具库方法")

}

module.exports.hello=hello

index.js使用:
const g_utils=require('./src/greeting_utils')
g_utils.hello()  //输出 hello 是 自定义工具库方法

###立即查看 运行效果,不使用单独命令行
yarn add nodemon --dev  安装nodemon 三方依赖,可自动保存运行
改变运行方式:
在pagejson.json文件 加入:
"scripts": {
    "start": "./node_modules/.bin/nodemon index.js"
  },

通过命令:  npm run start /npm start  启动nodemon
 

##4.node events (订阅事件)
通过  对象.on()  进行新增监听事件

通过  对象.emit('事件') ,执行响应的事件

通过  对象.once()  进行新增监听事件,但只会执行最后一次

##5.node 文件操作
const fs=require('fs');

fs.stat('index.js',(error,stats)=>{
    //打开 index.js文件 
    if(error){//错误执行
        console.log(error);
    }else{//成功执行
       console.log(stats);
       console.log(`文件:${stats.isFile()}`);
       console.log(`目录:${stats.isDirectory()}`);

    }
})

//创建一个目录
fs.mkdir('logs',(error)=>{
  if(error){//错误执行
    console.log(error);
  }else{//成功执行
    console.log('成功创建目录:logs')
  }
})

//创建文件并写入内容,如果有就覆盖
fs.writeFile('logs/logs_text.log',"这是一个写入记录的内容...\n",(error)=>{
    if(error){//错误执行
        console.log(error);
      }else{//成功执行
        console.log('成功写入内容到文件')
      }
})

//继续添加内容
fs.appendFile('logs/logs_text.log',"这是继续添加写入记录的内容...\n",(error)=>{
    if(error){//错误执行
        console.log(error);
      }else{//成功执行
        console.log('继续成功写入内容到文件')
      }
})

//读取文件内容
fs.readFile('logs/logs_text.log',(error,data)=>{
    if(error){//错误执行
        console.log(error);
      }else{//成功执行
        console.log('文件内容:'+data);
      }
})

//列出目录的文件
fs.readdir('logs',(error,files)=>{
    if(error){//错误执行
        console.log(error);
      }else{//成功执行
        console.log(files);
      }
})

//重名文件
fs.rename('logs/logs_text.log',"logs/logs_text.txt",(error)=>{
    if(error){//错误执行
        console.log(error);
    }else{//成功执行
        console.log("重命名成功");
    }
});

//删除文件 
fs.readdirSync('logs').map((file)=>{ //循环目录文件
    fs.unlink(`logs/${file}`,(error)=>{
        if(error){
            console.log(error);
        }else{
            console.log(`成功的删除了文件:${file}`);
        }
    })
  
});
//删除目录 fs.rmdir('logs',(error)=>{})  要删除目录,必须是空目录

//## 流的操作 
var fileReadStream=fs.createReadStream('data.json');//读流
var fileWriteStream=fs.createWriteStream('data.txt');//写流

//写一个 文件流操作事件 ,每次读一次都会执行该方法
var count=0;
fileReadStream.on('data',(chunk)=>{ //chunk 为 文件中的一大块数据
 console.log(`${++count} 接收到 ${chunk.length()}`)
 fileWriteStream.write(chunk)//读到的流

})


//只执行一次  最后所有的数据
fileReadStream.once('data',(chunk)=>{ //chunk 为 文件中的一大块数据
    console.log(`${chunk.toString()}}`)
   
})


//读取文件 流 专用结束 事件
fileReadStream.on('end',()=>{
   console.log('-- 结束 ---');
})

//读取文件 流 专用错误() 事件
fileReadStream.on('error',(error)=>{
    console.log(error);
})

//交接管道流 pipe
fileReadStream.pipe(fileWriteStream);

//链式 pipe的使用 (对读写的流进行压缩了,在写到其他文件)
fileWriteStream.on('pipe',(result)=>{
    console.log(result);
})
const zlib=require('zlib');
fileReadStream.pipe(zlib.createGzip())
.pipe(fileWriteStream);

##6. node http网络请求操作
const http=require('http');

var options={
    protocol:'http:',
    hostname:'api.douban.com',
    port:'80',
    method:'GET',
    path:'/v2/movie/top250'
}


//执行一个网络请求
var responseData='';
var request=http.request(options,(response)=>{
  console.log(response);//输出所有的响应
  console.log(response.statusCode);//请求状态
  console.log(response.headers);//请求头部信息

  response.setEncoding('utf8');
  response.on('data',(chunk)=>{
     console.log(chunk);//请求之后是一个流
     responseData +=chunk;
  })

})

//请求绑定
request.on('error',(error)=>{
  console.log(error);
})

request.on('end',()=>{
    JSON.parse(responseData).subjects.map((item)=>{
        console.log(item.title);
    })
});//执行请求完成

##5.node 测试
在node-dmeo中创建一个node-test文件夹,进入到该文件夹
执行npm init -y 初始化一个默认信息的node项目,选择安装依赖:
全局安装测试库:sudo npm install mocha  --global
项目文件安装测试库:npm install mocha --save-dev
然后在node-test文件夹中建立test文件夹和lib文件夹。
要看测试库,可执行 mocha,通过配置npm test 命令来启动测试。
 "scripts": {
    "test": "./node_modules/mocha/bin/mocha"
  }

在test文件中:新建测试文件
//两个参数: 测试名,测试执行函数代码
describe('TestNameClass',function(){

//测试 业务一
  describe('方法 1',function(){

      //测试 之前 执行
      before(function(){
         console.log('======测试之前')
      })

      after(function(){
        console.log('======测试之后')
      })

      beforeEach(function(){
        console.log('------每补测试之前')
      })

      afterEach(function(){
        console.log('------每补测试之后')
      })

      //业务的 第一个模块
      context('情境 1',function(){
          //模块 中的第一步
          it('测试 1',function(){

          })

          it('测试 2',function(){
              
        })
      })

  })

})

@@1.测试断言
安装依赖:npm install chai --save-dev

------ 断言 图

 

##6.npm 包管理 详细看图

##7.express的使用
1.项目创建:
  19Learn/node-demo/node-one-express
  执行 npm init -y,npm install nodemon babel-cli babel-preset-es2015 babel-preset-stage-0 -y
 vscode打开,修改 package.json 中的 scripts{
  "start":"./node_modules/.bin/nodemon --exec babel-node index.js"
}
新建文件:.babelrc
{
 "presets":["es2015","stage-0"]
}
新建文件:index.js
2.安装Express
  查看版本:npm view express versions --json
  安装:npm install express@4.17.1 --save

学习路线展望

 

-------待完善

二、nest 方面


-------待完善

三、拓展:taro

-------待完善

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

荣•厚德载物

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

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

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

打赏作者

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

抵扣说明:

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

余额充值