Node.js 第三天课堂笔记
知识点
-
增删改查
-
登陆
-
注册
-
头像
- 服务端图片
- 水印
- 图片水印
- 找回密码
-
核心系统
- 核心模块
- 第三方模块
- 自己写的模块
- 加载规则以及加载机制
- 循环加载
-
npm
-
package .json
-
Express
- 第三方Web开发框架
- 高度封装了http模块
- 更加专注于业务,而非底层细节
- 知其所以然
-
增删改查案例
- 使用文件来保存数据(锻炼异步编码)
-
MongoDB 芒果数据库
- (所有方法都封装好了)
反馈
- SEO
- 网站运营 SEO
+SEO 运营专员 - 百度 Google 搜狗
- 网站运营 SEO
- art-template中的each是什么,jQuery中的each是什么
- art-template 和 jQuery 没有任何关系
art-template中的each - each 是 art-template 的模板语法,专属的
+{{each 数组}}
+ - {{ KaTeX parse error: Expected 'EOF', got '}' at position 9: {value} }̲}</li> +{{/each….each(数组,function(){})
+$(‘div’).each(function(){}) 一般用来遍历 jQuery 选择器选择到的伪数组实例对象
ES5中的forEach
+forEach是ES5中的一个数组遍历函数,是js原生支持的遍历方法
- art-template 和 jQuery 没有任何关系
复习
-
网站开发模型
+黑盒子、哑巴
+写代码让它变得智能
+按照你写好的套路供用户使用 -
在Node 中使用art-template 模板引擎
- 安装
- 加载
- template.render()
-
客户端渲染和服务端渲染的区别
- 客户端渲染最少两次请求,发起ajax在客户端使用模板引擎渲染
- 客户端拿到的就是服务端已经渲染好的
-
处理留言本案例首页数据列表渲染展示
-
处理留言本案例发表留言功能
- 路径
- 设计好请求路径
- $GET 直接或查询字符串数据
- Node 中需要咱们自己动手来解析
- url.parse()
- /pinglun?name=jack&message=hello
- split(’?‘);
- name=jack&message=hello
- split(’&‘);
- name=jack message=hello
- forEach()
- name=jack .split(’=’)
- 0 key
+1 value
-
如何解析请求路径中的查询字符串
- url.parse()
-
如何在 Node 中实现服务器重定向
- header(‘loaction’)
- 301 永久重定向 浏览器会记住
- a.com b.com
- a浏览器不会请求a
- 直接跳去b
- 302 临时重定向 浏览器不记忆
- a.com b.com
- a浏览器还会请求a
- a 告诉浏览器你将往b
- 301 永久重定向 浏览器会记住
- header(‘loaction’)
-
Node 中的Console(REPL)使用
- cmd 输入node
上午总结
-
jQuery 的 each 和 原生的 JavaScript 方法 forEach
- ES5 提供的 forEach方法,不兼容 IE8
- jQuery 的 each 由 jQuery 这个第三方库提供的
- jQuery 2 以下版本是兼容 IE 8 的
- 它的 each 方法主要是用来遍历 jQuery 实例对象(伪数组)
- 同时它也可以作为低版本浏览器中的 forEach 替代品
- jQuery 的实例对象不能使用 forEach方法 ,如果想要使用必须先转为数组
- [].slice.call(jQuery实例对象) //slice截取返回数组
-
模块中导出多个成员和导出单个成员
-
301 和 302 状态码的区别
-
exports 和 module.exports 的区别
- 每个模块中都有一个 module 对象
- module 对象中有一个 exports 对象
- 我们可以把需要导出的成员都挂载到 module.exports 接口对象中
- 也就是:
module.exports.xxx = xxx
的方式 - 但是每次都
module.exports.xxx = xxx
很麻烦,点儿太多了 - 所以Node 为了你方便,同时在每一个模块中都提供了一个成员叫:
exports
exports
等价于module.exports
- 所以对于
module.exports.xxx = xxx
的方式 完全可以写成:exports.xxx = xxx
的方式 - 当一个模块需要导出单个成员的时候,必须使用
module.exports = xxx
的方式 - 不要使用
exports = xxx
的方式 不管用 - 因为每个模块最终向外
return
的是module.exports
- 而
exports
只是module.exports
的一个引用 - 所以即使你为
exports = xxx
重新赋值,也不会影响module.exports
- 但是有一种赋值方式比较特殊:
exports = module.exports
这个用来重新建立引用关系的 - 之所以让大家明白这个道理,是希望大家能够更加灵活的去面试
-
Node 是一个比肩 Java、PHP 的平台
- JavaScript 既能写前端也能写服务端
module.exports = {
}
exports = module.exports; //重新建立 exports 和 module.exports 的引用关系
exports.foo = 'bar'; //管用
下午总结
- jQuery 的each 和原生 JavaScript 方法 forEach
- 301 和 302 的区别
- 从模块中导出单个成员和导出多个成员的方式
- module.exports 和 exports 的区别
- require 方法加载规则
- 优先从缓存加载
- 核心模块
- 路径形式的模块
- 第三方模块
- node_modules
- package.json 包描述文件
- dependencies 选项的作用
- npm 常用命令
- npm init
- npm install 包名
- …
- Express 基本使用
- 使用 Express 把之前的留言本案例自己动手改造一下