全栈路线-nodejs

nodejs

介绍

node.js文档入门项目

Node.js 和 JavaScript 边界

建议在深入研究 Node.js 之前,对 JavaScript 的主要概念有所了解:

  • 词汇结构
  • 表达式
  • 数据类型
  • 变量
  • 函数
  • this
  • 箭头函数
  • 循环
  • 作用域
  • 数组
  • 模板字面量
  • 分号
  • 严格模式
  • ECMAScript 6、2016、2017

具备这些概念,无论是在浏览器还是在 Node.js 中,都会成为一名熟练的 JavaScript 开发者。

以下概念也是理解异步编程的关键,异步编程是 Node.js 的基本组成部分:

  • 异步编程与回调
  • 定时器
  • Promise
  • Async 与 Await
  • 闭包
  • 事件循环
node.js 和浏览器区别
  • 文件系统
  • 模块 node 使用require(),浏览器使用import
  • node 没有document、window等对象
  • 其他区别
V8JS 引擎

入门教程

基本情况
  • 从命令行运行node.js

      node app.js
    
  • 如何从node.js 程序退出

    • control + C
    • process.exit()
  • 读取环境变量

    const env = process.env.NODE_ENV
    
  • 日志输出 查看

    • console.log()

    • console.time()

    • console.timeEnd() // 函数运行时间

    • console.trace() // 查看堆栈

    • 使用chalk库,可以修改输出字体样式

      npm install chalk

      const chalk = require('chalk')
      console.log(chalk.green('你好'));
      
    • 进度条
      npm install progress

  • 输入 查看

    • 使用readline
    • 使用inquirer库 npm install inquirer
  • export 和module.exports之间的区别?

    export公开了它指向的对象的属性,module.exports公开了它指向的对象

  • npm 包管理

    • 安装 npm install
      • –save 安装并添加条目到 package.json 文件的 dependencies。

      • –save-dev 安装并添加条目到 package.json 文件的 devDependencies。

      • -g 为全局安装 通过 npm root -g 查看全局安装的包地址

        区别主要是,devDependencies 通常是开发的工具(例如测试的库),而 dependencies 则是与生产环境中的应用程序相关。

    • 更新 npm update
    • 版本控制
    • 运行任务 npm run
  • package.json指南

    • version 表明了当前的版本。
    • name 设置了应用程序/软件包的名称。
    • description 是应用程序/软件包的简短描述。
    • main 设置了应用程序的入口点。
    • private 如果设置为 true,则可以防止应用程序/软件包被意外地发布到 npm。
    • scripts 定义了一组可以运行的 node 脚本。
    • dependencies 设置了作为依赖安装的 npm 软件包的列表。
    • devDependencies 设置了作为开发依赖安装的 npm 软件包的列表。
    • engines 设置了此软件包/应用程序在哪个版本的 Node.js 上运行。
    • browserslist 用于告知要支持哪些浏览器(及其版本)。
  • 查看 npm 包安装的版本

    npm list

  • 将所有node.js的依赖包安装更新到最新版本

    npm install -g npm-check-updates
    
    ncu -u
    
    npm update
    
  • 卸载npm软件包

    npm uninstall <package-name>
    
    npm uninstall -g <package-name>
    
    • 查看全局安装的软件包 npm list -g --depth 0

node.js 事件循环
	调用堆栈是一个 LIFO 队列(后进先出)。
	事件循环不断地检查调用堆栈,以查看是否需要运行任何函数。
	当执行时,它会将找到的所有函数调用添加到调用堆栈中,并按顺序执行每个函数。
  • 消息队列

  • 作业队列 查看

    消息队列将你排在队列的后面(在所有其他人的后面),你不得不等待你的回合,而工作队列则是快速通道票,这样你就可以在完成上一次乘车后立即乘坐另一趟车。

JS异步编程和回调
  • Promise 查看

    异步函数底层使用了promise

  • Async/Await 查看

事件触发器
  • 使用events模块处理事件 查看
    const EventEmitter = require('events')
    const eventEmitter = new EventEmitter() 
    
搭建HTTP服务器
使用node.js发送Http请求

文件相关
  • 使用文件描述符

    fs.open() 查看

  • 文件属性

    fs.stat() 查看

  • 文件路径
    path 查看

  • 读取文件
    fs.readFile() 查看

  • 写入文件
    fs.writeFile() fs.appendFile() 查看

  • 使用文件夹 查看

    • 检查权限
      fs.access()
    • 检查文件夹是否存在
      fs.existsSync()
    • 创建文件夹
      fs.mkdir()
    • 读取文件夹
      fs.readdir()
    • 重命名文件夹
      fs.rename()
    • 删除文件夹
      fs.rmdir()
      因删除包含内容的文件夹回比较复杂,所以一般使用 fs-extra库 fs.remove()
      npm install fs-extra
      
  • 流 stream

    • 创建可读流
      const Stream = require('stream')
      const readableStream = new Stream.Readable({
        read() {}
      })
      
    • 创建可写流
      const Stream = require('stream')
      writableStream._write = (chunk, encoding, next) => {
        console.log(chunk.toString())
        next()
      }
      process.stdin.pipe(writableStream)
      
  • 记录对象 console.log(JSON.stringify(obj, null, 2))


以上node基础课程,开始中间件

Koa官网

Koa Git地址

学习文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值