NodeJS 第二天
复习
- NodeJS 简介
- NodeJS 的安装
- NodeJS 初体验
- 环境变量
- NodeJS中的JavaScript
- 天生支持模块化
- 一个模块就是一个私有作用域
- 模块与模块之间提供了特定的通信交互规则
- require
- module.exports
- 组成
- ECMAScript
- 核心模块
- fs:文件模块
- http:网络模块
- 第三方模块
- moment
- art-template
- 使用:
- npm install 第三方模块名
- 使用reqiure 函数加载
- 看文档,自己写
- 用户自定义模块
- 使用Node 模仿 Apach 文件浏览功能
渲染方式
-
浏览器渲染
- 特点
- 从服务器得到数据
- 在浏览器中将数据进行渲染
- 优点:
- 第一次加载页面时数据相对而言会少一点
- 用户体验会好一点
- 缺点:
- 不利于SEO优化
- 特点
-
服务器渲染
- 特点:
- 所有的数据在服务器端已经加载完毕
- 浏览器只负责渲染页面就可以
- 优点:
- 利于SEO优化
- 缺点:
- 第一次加载时速度会慢一点
- 特点:
文件操作的同步与异步
-
异步读取文件
console.log('111'); fs.readFile('./a.txt',function(err,data) { console.log('222'); }); fs.readFile('./b.txt',function(err,data) { console.log('333'); }); fs.readFile('./c.txt',function(err,data) { console.log('444'); }); console.log('555'); -
同步读取文件
``` var fs = require('fs'); console.log('111'); var dataA = fs.readFileSync('./a.txt').toString(); console.log('222'); console.log(dataA); var dataB = fs.readFileSync('./a.txt').toString(); console.log('333'); console.log(dataB); var dataC = fs.readFileSync('./a.txt').toString(); console.log('444'); console.log(dataC); console.log('555'); ``` -
区别:
- 异步:
- 通过一个回调函数来获取异步操作结果
- 异步操作的回调函数第一个 参数:err
- 如果操作成功:err 为null
- 如果操作失败:err 为 错误对象
- 所以在异步操作中,优先判断 err 是否出错
- 在异步操作中,无法通过try-catch来捕获异常
- 同步:
- 直接等待代码读取完文件再去执行下面的代码
- 异步:
第三方模块:模板引擎的使用
- 总结:数据使用模板渲染即可以在浏览器端渲染,又可以在服务器端渲染.
- 区别:
- 在浏览器端渲染(如:京东商品的评论信息),可以使页面加载更快,用户体验更好
- 在服务器端渲染(如:京东商品数据),可以使页面利于SEO优化
- 区别:
得到文件的状态
- fs.stat(path, callback)
- 作用:用来判断传入的路径的状态
- 参数:
- path:要传入的路径
- callback:回调函数
- 回调函数参数:
- err 目录出错时的对象
- stat 路径的状态对象
- stat.isFile():判断路径对应的是否是文件
- stat.isDirectory():判断路径对应的是否是文件夹
- stat.size:得到对应路径文件的大小(如果路径对应的是文件夹,则得不到大小)
- stat.mtime:得到应对路径文件的修改时间
- 回调函数参数:
使用 nodemon 实现改完代码服务自动重启
-
nodemon 是一个基于 Node 开发的一个命令行工具,
- 可以实现监视代码改动,自动重启服务的功能。
- 本质还是通过 node 执行的咱们自己写的脚本代码。
-
使用步骤:
-
第一,安装 nodemon
简写:npm i -g nodemon 全称:npm install --global nodemon -
第二,基本使用:
``` 以前的做法:node app.js 现在的做法:nodemon app.js ```
-
web中的路径