Node.js基本使用2

纸飞机 发表于 2021/10/22 14:29:21 2021/10/22
【摘要】 linux命令1. mkdir 创建文件夹2. vim 简写 vi 创建文件的3. rm -rf 文件名称 删除4. 递归删除 find ./ -name '文件名称' -print -exec rm -rf {} \;举例: find ./ -name ‘node_modules’ -print -exec rm -rf {} ;5. cat 文件名称 查看某个文件的内...

linux命令

1. mkdir 创建文件夹
2. vim 简写 vi   创建文件的
3. rm -rf 文件名称  删除
4. 递归删除  
   find ./ -name '文件名称' -print -exec rm -rf {} \;

举例: find ./ -name ‘node_modules’ -print -exec rm -rf {} ;
5. cat 文件名称 查看某个文件的内容

前端渲染 vs 后端渲染

1. 前端拿到数据之后, 前端来渲染数据
2. 后端来进行渲染( express )
3. 浏览器 -》 开发者工具-》 network
  1. headers
    1. general
    2. responseHeaders
    3. requestHeaders
    4. query string paramters
    5. Form data(表单提交的)
 4.前后端渲染优劣分析
    地址:https://www.cnblogs.com/zhangrunhao/p/6845626.html

node.js http.get 后端爬虫

步骤:
   数据抓取 ---》 数据清洗 ---》 数据格式整理---》 发送前台(web服务器)

爬虫案例:

反爬虫:
数据清洗的时候做,数据中用一个其他类型格式数据

events

1. Emitter.prototype   继承过来了  on   emit
   - on:事件的定义
   - emit:事件的触发
2.

fs/ zlib/ stream

 1.fs(文件模块)
    fs.readFile
    fs.open
    fs.openSync(open的同步方式)
    fs.write
    fs.close
    fs.unlink
    fs.readdir
    **注意:fs 模块的每一个方法都提供了异步与同步的两种操作方式。其中,异步的方式性能高,是一种推 荐的操作方式。如果您需要采用同步的方式,只要在异步方法名后面加上 Sync 即可,同时去掉末尾的 callback 参数**。
 2.zlib
 3.stream(流模块)
    流是一个抽象接口,有四种流类型
       readable:可读
       writable:可写操作
       duplex:可读可写操作
       transform:操作被写入数据,然后读出结果
 4.联合项目:制作压缩包
    制作一个压缩包的流程:
       1. 先有一个文件   
       2. 读取文件
       3. 制作压缩包
       4. 将读取的数据放入到压缩包中
    code:
       const zlib = require('zlib');
       const fs = require('fs');
       //创建可读的流
       const inp = fs.createReadStream('yyb.txt');
       //创建空压缩包
       const gzip = zlib.createGzip();
       //创建可写的流
       const out = fs.createWriteStream('yyb.txt.gz');
       inp.pipe(gzip).pipe(out);

Node.js原生路由

 1. 为什么要引进前端路由这样一个东西

前端异步流程控制工具( 所有的 )

  1. Promise
    https://blog.csdn.net/MrJavaweb/article/details/79475949

   
  1. Generator
    https://www.cnblogs.com/imwtr/p/5913294.html

  2. Async-await

  3. Node.js 中的nextTick()和setimmediate()
    https://www.cnblogs.com/5ishare/p/5268273.html

  4. async库
    https://caolan.github.io/async/

参考文档
Event-loop
http://www.ruanyifeng.com/blog/2014/10/event-loop.html?bsh_bid=983729729
史上最易读懂的 Promise/A+ 完全实现
https://zhuanlan.zhihu.com/p/21834559

npm script( npm脚本 )

  1. 概念: 
    npm 允许在package.json文件里面,使用scripts字段定义脚本命令。

  
  1. 常用使用:

  2. npm脚本就相当于一个 电器的使用说明书

  3. npm脚本运行使用 npm run

  4. npm脚本可以简写,但是只有特定几个

    npm start -> npm run start
    npm stop -> npm run stop
    npm text -> npm run test
    npm restart -> npm run stop & npm run start

express

构建后端项目的一个框架  

   
  1. 安装生成器
    npm install express-generator -g

  2. 使用
    express options 项目名称

  3. 创建项目

举例: express 04-express-project

  1. 目录内容
    bin 项目的配置文件( 比如: port )
    www 使用http模块创建一个web服务器
    public 静态资源文件夹( html css images js )
    routes 路由
    views 后端模板文件夹
    app.js 整个项目的入口文件
    package.json 整个项目的依赖包配置文件( 说明书 )

  2. 项目的启动

  3. 先进入项目
    cd 项目名称

  4. 安装项目需要的依赖

npm install
  1. 项目启动(说明书 package.json 中 scripts脚本)
npm start

建议:
养成一个习惯: 看到一个项目, 首先看项目的说明书(package.json)

  1. 看一个项目流程?

  2. package.json
    依赖包
    npm脚本–》 项目启动命令–》配置文件

  3. express 中间件 Middleware
    中间件: 具有特定功能的函数

    中间件(Middleware) 是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 web 应用中处于请求-响应循环流程中的中间件,一般被命名为 next 的变量。
    中间件的功能包括:
    *
    执行任何代码。
    *
    修改请求和响应对象。
    *
    终结请求-响应循环。
    *
    调用堆栈中的下一个中间件。

    中间件包含三个部分(形式参数)
    request : 请求
    response: 响应
    next: 请求和响应流程中的中间件, 用next变量表示

    express中提供了

    1. 应用级中间件
      应用级中间件就是一个具有特定功能性的函数, 这个函数需要绑定在app对象身上,通过app.use() || app.method() 来调用

    2. 路由中间件

    3. 错误中间件

app对象
const app = express()

使用: 
  1. app.use()    调用中间件(函数)
  2. app.method() 处理http请求的        

前端的请求方式很多的: 比如: get post delete put all

杭州: Node.js中间件封装

Node.js渲染模板
1. ejs
2. pug(曾用名: jade) 语法功能很强大
3. art-template(纯后端模板)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。