请求对象Request当请求路由的时候会计入路由的处理方法中,这个方法本质是中间件,包括三个参数,即请求对象Request,返回对象Response和执行下一步方法 nextRequest 常用属性Request.url...方法参数参数类型是否必选作用viewString是页面文件,用于渲染的文件路径localsObject否属性定义页面的局部变量callbackfunction否回调函数,返回可能的错误和呈现的字符串,但不执行自动响应...,发生错误是该方法在next(err) 内部调用Response.send() 方法 发送http响应send() 方法 只发送一个https响应至请求端,只接收一个参数,这个参数可以是任何类型之所以可以接收任何类型的参数是因为执行这个方法的时候会自动设置响应头数据类型...更为用途广泛,所有学习怎样返回json 数据也很重要res.json({ name:'iron man', title:'无敌'})Response.json() 方法只接受一个参数,可以是任何的...() 还可以设定 http状态码res.redirect(301,'/ceshi')
http_code 状态码分类 分类 分类描述 1×× 信息,服务器收到请求,需要请求者继续执行操作。 2×× 成功,操作被成功接收并处理。 3×× 重定向,需要进一步的操作以完成请求。...204 No Content 表示请求成功,但不会返回任何内容。 205 Reset Content 表示请求成功,但不会返回任何内容,并且要求客户端重置表单。...502 Bad Gateway 表示作为网关或代理的服务段在执行请求时,从上游服务器获得了无效的响应。...504 Gatewy Timeout 表示作为网关或代理的服务段在执行请求时,未能及时从上游服务器获得响应。...(RFC 6585) 449 扩展(Retry With) 由微软扩展,代表请求应当在执行完适当的操作后进行重试。
NodeJS development 什么是 Express 中间件? 中间件在字面上的意思是你在软件的一层和另一层中间放置的任何东西。...Express 中间件是在对 Express 服务器请求的生命周期内所执行的函数。 每个中间件都可以访问其被附加到的所有路由的 HTTP 请求和响应。...当 Web 服务器收到数据请求时,Express 将为你提供一个请求对象,其中包含有关用户及其所请求数据的信息。Express 还使你可以访问响应对象,可以在Web服务器响应用户之前对其进行修改。...收到请求后,与请求相匹配的每个中间件都将会按照初始化的顺序运行,直到有终止操作为止。...你可以用中间件进行日志记录、身份验证等操作。如下所示,以记录用户的最新活动并解析身份验证标头,用它确定当前登录的用户并将其添加到 Request 对象。 该函数在程序每次收到请求时执行。
重定向响应 Express 中,你可以使用 res.redirect("重定向地址") 方法来发送重定向响应 方法会向客户端发送一个 HTTP 重定向状态码(默认是 302 Found)以及一个 Location...头部,告诉客户端去请求另一个 URL //重定向响应 app.get('/resRedirect',(req,res)=>{ //Express 使用 res.redirect() 进行重定向响应...来发送文件下载响应,这个方法指定的文件作为附件发送给客户端,浏览器触发文件下载操作⬇️️ //下载响应 app.get('/resDownload',(req,res)=>{ //Express...}); }) Express 的中间件 Express 的中间件本质是一个回调函数Middleware 主要目的是处理 HTTP 请求,对请求进行预处理、执行一些操作,将请求next 传递——》下一个中间件或路由处理程序...,也具有:requerst、response 参数对象; Express 中间件的主要作用: 处理公共 HTTP 请求和响应、执行一些操作,如身份验证、日志记录、数据解析等 ··· 编程web领域很多语言都有中间件的概念可能叫法不同
同步请求 调用open方法时,第三个参数是false时,就是同步请求,这时候,JavaScript会堵塞,当服务器响应之后才继续执行。...这时候,绑定的readystatechange事件不会有反应,因为同步请求的话,JavaScript会堵塞,当服务器响应之后才继续执行,所以当我们绑定事件时,已经接收到响应了,所以状态不会再变也就不会触发...先改造一下提供接口的express先。...const express = require('express') const cors = require('cors') const app = express() app.use(cors(...(可以在express增加一个定时器响应,时间设置长一点,来模拟请求超时) // 设置2s超时 xhr.timeout = 2000 xhr.ontimeout = function () {
Idempotent:每次执行操作时,GET 只有读取 Resource,不会改变到任何的 Resource (资源, 数据),所以任何资源的任何状态都是一样的。...204 No Content 表示请求成功,但不会返回任何内容。 205 Reset Content 表示请求成功,但不会返回任何内容,并且要求客户端重置窗体。...3XX Redirect 此类状态代码通常代表本次请求需要客户端采取进一步操作才能完成。通常用于复位向。...502 Bad Gateway 表示作为网关或代理的服务段在执行请求时,从上游服务器获得了无效的响应。...504 Gatewy Timeout 表示作为网关或代理的服务段在执行请求时,未能及时从上游服务器获得响应。
这时候并不会发送请求,而只是启动一个请求 open方法接收 3 个参数:请求类型、请求 URL、请求是否异步(默认为true,表示异步执行) xhr.open("get", "example.txt",...304表示资源没有修改过,是直接从浏览器缓存中拿的,即也算收到正确的响应 console.log(xhr.responseText); } } }; 4....304表示资源没有修改过,是直接从浏览器缓存中拿的,即也算收到正确的响应 console.log(xhr.responseText)...) 如果想简单学习下express,可以访问本人的博客网站。...const express = require("express"); const cors = require("cors"); const app = express(); app.use(cors
(middleware)是一个函数,他可以访问请求对象(request object(req)),响应对象(response object(res))和web应用中处于请求-响应循环 Express可以使用如下几种中间件...next(); // 传递request对象给下一个中间件 }) // 挂载至/user/:id的中间件,任何执行/user/:id的请求都会执行它 app.use('/use/:id',(req,res...最终会抛出localhost未发送任何数据的错误 ?...= express.Router() // 没有挂载路径的中间件,通过该路由的每个请求都会执行该中间件 router.use(function (req, res, next) { console.log...,可以响应一个 HTML 错误页面、一句简单的话、一个 JSON 字符串,或者其他任何您想要的东西。
本地通过 express 起一个服务来验证强缓存的 3 个属性,代码如下: const express = require('express'); const app = express(); var...状态,加载浏览器缓存,并且响应头会设置 Last-Modified 或者 ETag 属性。...的值进行比较,如果相等,返回 304 ,并加载浏览器缓存。...本地通过 express 起一个服务来验证协商缓存,代码如下: const express = require('express'); const app = express(); var options...如果文件被修改了,但是内容没有任何变化的时候,Last-Modified/If-Modified-Since 会错误地返回 304,上面的例子就说明了这个问题 总结 在实际使用场景中,比如政采云的官网
304 Not Modified 资源未修改,表示本地缓存仍然可用。...这里重点说一下 304,304 是 HTTP 缓存中的一个重要内容,表示资源未修改,相当于将资源重定向到本地缓存。 关于 HTTP 缓存的详细内容,可以查看这篇文章:浏览器缓存策略之扫盲篇 2....当然,这一方式只在 JavaScript 的客户端执行环境有效。 上述所介绍的三种重定向方式中,按照优先级顺序如下:HTTP > HTML > JavaScript。...对于危险操作进行重定向:类似编辑删除等危险操作,为了避免用户刷新时重复触发危险操作,我们可以将其重定向到临时的进度展示页,比如使用 303。对于耗时较长的请求也可以这么处理。 4....既然是缓存行为,那么我们就可以通过常规的缓存清理方式来处理,包括但不限于以下几种方式: 控制台禁用缓存 清除历史记录 Network 面板清除缓存 这里大家可以自行尝试以下,如果不行的话,记得多试 1-
HTTP 对此操作有一种特殊类型的响应,称为 HTTP 重定向(HTTP redirect)。 重定向可实现许多目标: 站点维护或停机期间的临时重定向。...原理 在 HTTP 协议中,重定向操作由服务器向请求发送特殊的重定向响应而触发。重定向响应包含以 3 开头的状态码,以及 Location 标头,其保存着重定向的 URL。...鼓励在 Link 标头中加入机器可读的 rel=alternate 304 Not Modified 发送用于重新验证的条件请求。表示缓存的响应仍然是新的并且可以使用。...在这种情况下,会返回一个303(See Other)重定向响应,该响应链接到一个页面,表示请求的操作已经被列入计划,并且最终会通知用户操作的进展情况,或者允许用户将其取消。...mod_alias 模块提供了 Redirect 和 Redirect_Match 两种指令来设置 302 响应(默认值): ServerName example.com
这里我们介绍以express为nodejs框架的重定向。...Express是一个基于Node.js实现的Web框架,其响应HTTP请求的response对象中有两个用于URL跳转方法res.location()和res.redirect(),使用它们可以实现URL...Express通过Location头将指定的URL字符串传递给浏览器,它并不会对指定的字符串进行验证(除'back'外)。而浏览器则负责将当前URL重定义到响应头Location中指定的URL。...通过location()设置头信息后,其后的代码还会执行。...通过location()设置Loction头后,设置HTTP状态码,最后通过ServerResponse对象的end()方法返回响应信息。调用redirect()方法后,其后的代码都不会被执行。
原因短语 1XX Informational(信息性状态码) 接收的请求正在处理 2XX Success(成功状态码) 请求正常处理完毕 3XX Redirection(重定向状态码) 需要进行附加操作以完成请求...304 返回时不包含任何响应的主体部分。304 与重定向无关系。 307 Temporary Redirect:临时重定向。与 302 含义相同。...403 Forbidden:服务器拒绝访问,原因可能是未获得文件系统的访问授权,访问权限出现某些问题等。...500 Internal Server Error:服务器端执行请求时发生错误。 503 Service Unavailable:服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。...(缓存)保存在代理服务器上 透明代理:转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理(Transparent Proxy),反之为非透明代理 网关:转发其他服务器通信数据的服务器。
该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。比如,当从浏览器发出请求处理后,返回204响应,那么浏览器显示的页面不发生更新。...该状态码表示服务端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含Content-Range制定范围的实体内容。...3XX 重定向 3XX响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。 301 Moved Permanently ? 永久重定向。...304 Not Modified ? 该状态码表示客户端发送附带条件的请求时,服务器允许请求访问资源,但未满足条件的情况。 304状态码返回时,不包含任何响应的主体部分。...304虽然被划分在3XX类别中,但是和重定向没有关系。 307 Temporary Redirect 临时重定向。该状态码与302有着相同的含义。
Express4.x API 译文 系列文章 技术库更迭较快,很难使译文和官方的API保持同步,更何况更多的大神看英文和中文一样的流畅,不会花时间去翻译--,所以我们看到express中文网更多的还是英文...所以我此次翻译的目的,一是熟悉express文档,二是锻炼自己英语阅读能力; 原文地址:express.com Response res对象表示一个Express应用程序在收到HTTP请求时发送的HTTP...(这句话翻译过来我有些不理解,我就不再翻译,res.end用于结束响应) 快速结束响应而无需任何数据,如果你需要对数据进行响应,取而代之的是使用诸如res.send和res.json res.send(...); res.status(404).end(); res.format(object) 在请求对象时,在AcceptHTTP头对象上执行content-negotiation。...Availability maxAge 以毫秒为单位设置max-age缓存控制头或者MS格式的字符串 0 root 相关文件的根目录 lastModified 设置last-modified头设置为操作系统上文件的最后修改日期
此响应仅由状态行和可选的HTTP头组成,以一个空行结尾。由于HTTP/1.0未定义任何1xx状态码,所以不要向HTTP/1.0客户端发送1xx响应。...除非响应的是一个HEAD请求,否则服务器就应该返回一个解释当前错误状况的实体,以及这是临时的还是永久性的状况。这些状态码适用于任何请求方法。浏览器应当向用户显示任何包含在此类错误响应中的实体内容。...浏览器应当向用户展示任何在当前响应中被包含的实体。...默认操作是将此状态视为重定向,并遵循与此响应关联的 // Location 标头的内容。...接收到此状态时的默认操作为遵循与响应关联的 Location 头。
Middleware 功能 从上面的Sample可以看出,中间件可以有以下功能: 执行任何代码。...Time:', Date.now()); next(); }); // 挂载至 /user/:id 的中间件,任何指向 /user/:id 的请求都会执行它 app.use('/user/:id'...,因为第一个路由已经终止了请求-响应循环。...上述在应用级创建的中间件系统,可通过如下代码改写为路由级: var app = express(); var router = express.Router(); // 没有挂载路径的中间件,通过该路由的每个请求都会执行该中间件...Mixed “index.html” lastModified 设置 Last-Modified 头为文件在操作系统上的最后修改日期。可能值为 true 或 false。
意味着不会有一个异步的响应去表明当前请求的结果,预期另外的进程和服务去处理请求,或者批处理。 204 No Content:服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。...205 Reset Content:服务器已经成功处理了请求,但是没有返回任何内容。与204响应不同,返回此状态码的响应要求请求者重置文档视图。...301 Moved Permanently:被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用响应返回的若干个URI之一。...304 响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。请求的时候一般结合If-Modified-Since头部使用。 307 Temporary Redirect:307的意义如上302。...403 Forbidden:服务器已经理解请求,但是拒绝执行它。与401不同,403知道是你登录了,但是还是拒绝了你。 404 Not Found:请求失败,你请求所希望得到的资源未在服务器上发现。
()、res.redirect(),而这几个有什么不同呢?...更多请看文档 express Response ❞ res.end() ❝ 结束response - 如果服务端没有数据回传给客户端则可以直接用res.end返回,以此来结束响应过程 ❞ res.send...❝ 重定义到path所指定的URL,同时也可以重定向时定义好HTTP状态码(默认为302) ❞ res.redirect('http://baidu.com'); res.redirect(301,...如果给定的数字为0,PM2则会根据你CPU核心的数量来生成对应的工作线程 ❝ 拓展:我们可以通过借助cluster模块来实现多进程分页爬虫,Node多进程架构可以充分利用 cpu 资源,我们在一些耗时的操作上...❞ 通过内存快照,可以使用node-heapdump 官方文档获得内存快照进行对比,查找内存溢出 可视化内存泄漏检查工具 Easy-Monitor 官方文档 ?
领取专属 10元无门槛券
手把手带您无忧上云