node.js(三)

论坛 期权论坛 期权     
IT 背包ker   2019-6-29 21:30   2759   0

   
node.js(三)


[h1](基础知识三)[/h1] 一、网站开发模型
  + 黑盒子、哑巴
  + 写代码让它变得更智能
  + 按照你设计好的套路供用户使用

二、客户端渲染和服务端渲染的区别
  + 最少两次请求,发起 ajax 在客户端使用模板引擎渲染
  + 客户端拿到的就是服务端已经渲染好的

三、掌握如何解析请求路径中的查询字符串
  + url.parse()

四、如何在 Node 中实现服务器重定向
  + header('location')
    * 301 永久重定向 浏览器会记住
      - a.com b.com
      - a 浏览器不会请求 a 了
      - 直接去跳到 b 了
    * 302 临时重定向 浏览器不记忆
      - a.com b.com
      - a.com 还会请求 a
      - a 告诉浏览器你往 b

五、jQuery 的 each 和 原生的 JavaScript 方法 forEach
  + EcmaScript 5 提供的
    * 不兼容 IE 8
  + jQuery 的 each 由 jQuery 这个第三方库提供
    * jQuery 2 以下的版本是兼容 IE 8 的
    * 它的 each 方法主要用来遍历 jQuery 实例对象(伪数组)
    * 同时它也可以作为低版本浏览器中 forEach 替代品
    * jQuery 的实例对象不能使用 forEach 方法,如果想要使用必须转为数组才可以使用
    * `[].slice.call(jQuery实例对象)`

六、301 和 302 状态码区别
  + 301 永久重定向,浏览器会记住
  + 302 临时重定向

七、exports 和 module.exports 的区别
  + 每个模块中都有一个 module 对象
  + module 对象中有一个 exports 对象
  + 我们可以把需要导出的成员都挂载到 module.exports 接口对象中
  + 也就是:`moudle.exports.xxx = xxx` 的方式
  + 但是每次都 `moudle.exports.xxx = xxx` 很麻烦,点儿的太多了
  + 所以 Node 为了你方便,同时在每一个模块中都提供了一个成员叫:`exports`
  + `exports === module.exports` 结果为  `true`s
  + 所以对于:`moudle.exports.xxx = xxx` 的方式 完全可以:`expots.xxx = xxx`
  + 当一个模块需要导出单个成员的时候,这个时候必须使用:`module.exports = xxx` 的方式
  + 不要使用 `exports = xxx` 不管用
  + 因为每个模块最终向外 `return` 的是 `module.exports`
  + 而 `exports` 只是 `module.exports` 的一个引用
  + 所以即便你为 `exports = xx` 重新赋值,也不会影响 `module.exports`
  + 但是有一种赋值方式比较特殊:`exports = module.exports` 这个用来重新建立引用关系的
  + 之所以让大家明白这个道理,是希望可以更灵活的去用它

八、Node 是一个比肩 Java、PHP 的一个平台
  + JavaScript 既能写前端也能写服务端

九、require 方法加载规则
  + 优先从缓存加载
  + 核心模块
  + 路径形式的模块
    * `./xxx`
    * `../xxxx`
    * `/xxxx` / 在这里表示的是磁盘根路径
    * `c:/xxx`
  + 第三方模块
    * 第三方模块的标识就是第三方模块的名称(不可能有第三方模块和核心模块的名字一致)
    * npm
      - 开发人员可以把写好的框架、库发布到 npm 上
      - 使用者在使用的时候就可以很方便的通过 npm 来下载
    * 使用方式:`var 名字 = require('npm install 的那个包名')`
    * node_modules
    * node_modules/express
    * node_modules/express/package.json
    * node_modules/express/package.json main
    * 如果 package.json 或者 package.json main 不成立,则查找备选项:index.js
    * 如果以上条件都不成立,则继续进入上一级目录中的 node_modules 按照上面的规则继续查找
    * 如果直到当前文件模块所属磁盘根目录都找不到,最后报错:`can not find module xxx`

IT背包ker ∣一个有用的公众号
长按,识别二维码,加关注


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:20
帖子:4
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP