360前端星计划之Node.js基础入门

什么是Node.js

  • 与JS的区别
    • 基于异步I/O相关接口
    • 基于node_modules和require的模块依赖
    • 提供C++ addon API与系统交互
  • 可以干什么?
    • 运行在服务端
    • 可以做命令行脚本
    • 可以做客户端软件
    • 可以运行在IoT软件中

Node.js基础

  • 引入fs模块进行读写,raedFile为异步操作
  • 模块
    • 内置模块:编译进Node中,直接require
    • 文件模块:原生模块之外的模块,和文件夹一一对应
      • 直接调用文件,就可以使用暴露的方法,文件中使用exports进行方法暴露。
    • 模块加载
      • 绝对路径
      • 相对路径
      • 无后缀文件
      • 加载外部模块,逐级向上查找。
    • 模块类型:.js/.json/.node/.mjs/…
    • 模块路径查找
      • 绝对路径
      • 相对路径
      • 模块、文件夹
        • 原生模块,直接读取缓存
        • 依次向上级查找
        • 解析json.js,查找main属性,没有则index.js
        • 没找到则报错
      • js模块解析
        • 使用闭包进行包裹
        • 通过vm.rumlnThisContext执行
        • 获取module对象的值作为模块返回值
      • 模块缓存
        • 模块加载后会将返回值缓存
        • 下次加载直接读取缓存结果,节省文件I/O和解析时间

NPM

  • Node包管理器
  • 包管理
    • package.json在包顶级目录下,存储一些包的信息
      • 重要信息:main(记录入口文件),npm scripts(表示一些常有的快捷方式)bin,semversion(版本规范),registry(代理,指定源)
      • 重要依赖:dependencies\devDependencies\peerDependencies\bundleDependencies\optionalDependencies
    • 二进制文件:bin目录
    • JS代码:lib目录
    • 文档:doc目录
    • 单元测试:text目录
  • 包依赖
    • *接收任意版本的更新
    • 不带符号表示只接受该版本
  • NPM问题
    • 速度
    • 安全:npm audit可以检测安全性

基于Node.js的Web开发

  • 使用HTTP模块建立Web服务
  • Koa模块:建立web服务的模块封装,自由性高,中间件繁多,不利于团队开发
  • THINKJS:企业级目录规范
    • 包含路由模块,数据库模块,缓存模块等
    • 实现模块统一和目录规范的统一
  • ToDo实战
    • Restful接口规范
      • 每个API对应一种资源或资源集合
      • 使用HTTP Method表示对资源的动作
      • 使用HTTP Status Code表示资源操作结果
    • RESTful API
      • GET /ticket获取列表
      • GET /ticket/:id查看某个具体的ticket
      • POST /ticket/新建一个
      • PUT /ticket/:id更新一个
      • DELETE /ticket/:id删除一个
  • 模型的优点
    • 简化代码,提高效率
    • 可以操作数据库
    • 安全
  • Node.js调试
    • 日志调试(console.log)
    • 断点调试
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值