response对象和request对象

1. request 对象 和 response对象

1.1. request 对象
  • request 对象类型 , 继承自stream.Readable
  • request 对象常用成员
  • request.headers
  • request.rawHeaders
  • request.httpVersion
  • request.method
  • request.url
1.2. response 对象
  • response 对象类型
  • response 对象常用成员
  • response.writeHead(statusCode[, statusMessage][, headers])
    1. This method must only be called once on a message and it must be called before response.end() is called.
    2. 这个方法在每次请求响应前都必须被调用(只能调用一次)。并且必须在end()方法调用前调用
2. If you call response.write() or response.end() before calling this, the implicit/mutable headers will be calculated and call this function for you.- 如果在调用writeHead()方法之前调用了write() 或 end()方法,系统会自动帮你调用writeHead()方法,并且会生成默认的响应头 3. When headers have been set with response.setHeader(), they will be merged with any headers passed to response.writeHead(), with the headers passed to response.writeHead() given precedence.- 如果通过 res.setHeader() 也设置了 响应头 ,那么系统会将s erHeader()设 置的响应头和 writeHead() 设置的响应头合并。 并且 writeHead() 的设置优先
// 示例代码:res.writeHead(200, 'OK', { 'Content-Type': 'text/html; charset=utf-8', 'Content-Length': Buffer.byteLength(msg)});
  • response.write(chunk[, encoding][, callback])
  • 参数1:要写入的数据,可以是字符串或二进制数据,必填
  • 参数2:编码,默认是utf8,选填。
  • 参数3:回调函数,选填。
  • response.end([data][, encoding][, callback])
  • 结束响应。
  • This method signals to the server that all of the response headers and body have been sent; that server should consider this message complete. The method, response.end(), MUST be called on each response.
  • res.end()这个方法告诉服务器所有要发送的响应头和响应体都发送完毕了。可以人为这次响应结束了。
  • 同时每次响应都必须调用该方法,用来结束响应
* 参数1:结束响应前要发送的数据,选填。* 参数2:编码,选填。* 参数3:回调函数,选填。
  • response.setHeader(name, value)
  • 设置响应报文头
  • response.statusCode
  • 设置或读取http响应码
  • response.statusMessage
  • 设置或读取http响应状态消息
  • 2. NPM
    2.1. NPM 是什么?
    • npm(全称Node Package Manager,即node包管理器)是Node.js默认的、以JavaScript编写的软件包管理系统。
    2.2. 一般当我们说npm的时候可能指3件事
    1. NPM 网站:https://www.npmjs.com/
    2. NPM 包管理库,存储了大量的JavaScript代码库
    3. NPM 客户端,我们所使用的npm命令行工具。使用JavaScript开发的基于node.js的命令行工具,本身也是Node的一个包。
    2.3. NPM 官方解释:
    • npm is the package manager for JavaScript and the world’s largest software registry.
    • npm 是一个JavaScript包管理器,并且是世界上最大的软件登记处
    • discover packages of reusable code — and assemble them in powerful new ways.
    • 发现可重用代码,并集成代码包到项目中的全新的、强大方式
    • npm makes it easy for JavaScript developers to share and reuse code, and it makes it easy to update the code that you're sharing.
    • npm 让JavaScript开发者共享和重用代码变的更容易,同时也让我们更容易地更新正在被共享的代码
    2.4. npm与 node.js
    • npm是Node.js默认的软件包管理系统。安装完毕node后,会默认安装好npm
    • npm本身也是基于Node.js开发的包(软件)
    2.5. 如何安装 NPM?
    • npm会随着Node.js自动安装,安装完毕node.js后会自动安装npm
    • 查看当前npm版本:npm -v
    • 更新npm:npm install npm@latest -g
    2.6. NPM 使用
    1. 在 https://www.npmjs.com/ 网站找到需要的包
    2. 在项目的根目录下,执行npm install 包名称安装
    3. 在node.js代码中通过 require('包名'); 加载该模块
    4. 注意:通过npm install 包名安装的包,会自动下载到当前目录下的node_modules目录下,如果该目录不存在,则创建,如果已存在则直接下载进去。
    5. 在代码中通过 require('包名'); 加载该模块
    ----- 上面说的这种方式叫做 本地安装。
    2.7. NPM 全局安装介绍
    1. 什么是 npm 全局安装?
    • npm install 包名 -g npm 全局安装指的是把包安装成了一个命令行工具。
    // 通过npm全局安装mime npm install mime -g //安装完毕后可以在命令行中直接使用 mime a.txt 命令来查看对应的结果
    1. npm 全局安装实际做了2件事:
      1. 下载包到一个指定的目录C:\Users\username\AppData\Roaming\npm\node_modules
      2. 创建一段命令行执行的代码。C:\Users\username\AppData\Roaming\npm\mime -> C:\Users\steve xiaohu zhao\AppData\Roaming\npm\node_modules\mime\cli.js
    2.8. NPM 安装建议
    1. 全局安装只是为了可以当做命令行使用而已
    2.9. npm常用命令介绍
    1. install,安装包。npm install 包名
    2. uninstall,卸载包。·npm uninstall 包名`
    3. version,查看当前npm版本。npm version 或 npm -v
    4. init,创建一个package.json文件。npm init
    5. 注意:当使用 npm init -y 的时候,如果当前文件夹(目录)的名字比较怪(有大写、有中文等等)就会影响npm init -y 的一步生成操作,此时需要 npm init 根据向导来生成
    2.10. "模块"(Modules)和"包"(Packages)的区别
    1. module is any file or directory that can be loaded by Node.js' require().
    2. 模块可以是任何一个文件或目录(目录下可以有很多个文件),只要能被node.js通过require()即可。
    1. package is a file or directory that is described by a package.json. This can happen in a bunch of different ways!
    2. 包是一个文件或目录(目录下可以有多个文件)必须有一个package.json文件来描述,就可以是一个包。
    node.js 错误调试:
    1. 当开启服务后,在浏览器中输入地址,如果出现浏览问题,首先要先看 服务器控制台是否报错。如果报错,直接根据服务器报错进行排错。
    2. 打开浏览器开发者工具中的 “网络” 部分,查看请求是否成功发出去了
    3. 看一下请求报文是不是和我们想的一样
    4. 响应状态码
    3. 在 html 网页中路径的含义
    3.1. 在 html 网页中相对路径 './' 和 绝对路径 '/'的含义
    1. "相对路径" 到底 "相对" 的是什么?
    • 相对当前请求的路径
    • 相对于吐出当前网页的路径
    3.2. 网页中的这个路径主要是告诉浏览器向哪个地址发起请求用的
    1. './' 表示本次请求从相对于当前页面的请求路径(即服务器返回当前页面时的请求路径)开始
    2. '/' 表示请求从根目录开始
    3.3. 打开浏览器来演示,最终主要体现在了请求报文的 url 上。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值