获取 API 和 Node Js
Fetch API and Node Js
一般我们在做网站的时候会给出2-3种回复。
更改发起请求的同一页面的内容
正在重定向到另一个 page/view
重定向到另一个 page/view,一些内容来自位于后面的数据库
我对何时使用 fetch api 来呈现来自后端 rest api 的内容以及何时在使用 res.render() 时通过模板系统使用 expess 感到困惑.这些是相互替代的,还是我非常不理解的东西?
提前致谢。
给定的 http 请求需要有特定的目的。对于任何特定的 http 请求,您可能想做很多不同的事情。服务器应该发送什么样的响应完全取决于该 http 请求的目的。
以下是一些说明不同用途的示例:
浏览器可能只需要与给定 resource/URL 关联的 HTML 内容。为此,它向服务器发送一个 GET,然后服务器发回一个代表 HTML 页面的响应。此类 http 请求的一个示例是此问题的 URL:https://whosebug.com/questions/67527190/fetch-api-and-node-js
。 returns 一个 HTML 页面,浏览器随后可以呈现该页面(以及 运行 其中的任何 Javascript)。在 Express 中,您可以使用 res.render()
、res.sendFile()
或 res.send()
甚至 res.write()
将 HTML 数据发送回浏览器。您使用哪种取决于数据源是什么以及哪种最适合。 res.render()
通常与模板系统(如 EJS、nunjucks、Jade、Mustache 等)结合使用。 res.sendFile()
发送一个已经构建好的静态文件。 res.send()
从您的 Javascript 发送一个字符串(您可能是动态创建的)。
浏览器中显示的网页可能希望从您的服务器请求一些数据。在这种情况下,网页中的 Javascript 将再次向服务器发送 GET 请求,其中 URL 对应于它想要的数据。然后服务器会发回 JSON 响应,网页中的 Javascript 会收到 JSON 并决定如何处理它(比如可能动态地向页面添加内容)。要在使用 Express 时将 JSON 响应发送回客户端,您可以使用 res.send(someObj)
或 res.json(someObj)
。如果 someObj
是 Javascript object,两者将做同样的事情。
表单可以由浏览器从网页post编辑。这是在用户点击 <form>
中的提交按钮时完成的,浏览器从表单中的字段收集值并将它们发送到 action
属性中的 link <form>
标记通常作为 POST 方法。然后服务器将接收该数据,按预期处理它并发送响应。浏览器会将响应呈现为新网页。有时,服务器想要发生的是将表单 post 然后让浏览器切换到新的 URL。为此,服务器使用 3xx 状态代码(通常为 302)进行响应,并在响应中将 Location
header 设置为新的 URL。在这种情况下,浏览器看到 302 响应状态,获取 Location
header 然后从服务器请求新的 URL。服务器获取新的 URL 请求,将内容提供回浏览器(在这种情况下通常是 HTML 页面),然后浏览器呈现该新页面。如果您的服务器希望告诉客户端转到新的 http URL,那么它可以使用类似 res.redirect(302, newURL)
的内容。这只是一个快捷方式,它会自动将响应的 http 状态设置为 302,并将响应中的 Location
header 设置为您传递的 URL。
因此,这些只是 real-world 如何使用不同的 HTTP 请求和响应的示例。何时执行哪一项完全取决于任何给定 http 请求的目的和情况,而这完全取决于您的应用程序设计。
Please explain what are the methods to send these type of responses using Node, Express, Fetch API.
不清楚你的意思。 fetch()
API 是一个浏览器 API,可用于从网页 Javascript 向任何目标服务器发送 http 请求,然后接收返回给 Javascript.
Express 是一种构建 Web 服务器并定义您希望它接收和处理的 URLs/http 方法的方法。
Node是Express运行所在的开发环境。
一般我们在做网站的时候会给出2-3种回复。
更改发起请求的同一页面的内容
正在重定向到另一个 page/view
重定向到另一个 page/view,一些内容来自位于后面的数据库
我对何时使用 fetch api 来呈现来自后端 rest api 的内容以及何时在使用 res.render() 时通过模板系统使用 expess 感到困惑.这些是相互替代的,还是我非常不理解的东西?
提前致谢。
给定的 http 请求需要有特定的目的。对于任何特定的 http 请求,您可能想做很多不同的事情。服务器应该发送什么样的响应完全取决于该 http 请求的目的。
以下是一些说明不同用途的示例:
浏览器可能只需要与给定 resource/URL 关联的 HTML 内容。为此,它向服务器发送一个 GET,然后服务器发回一个代表 HTML 页面的响应。此类 http 请求的一个示例是此问题的 URL:
https://whosebug.com/questions/67527190/fetch-api-and-node-js
。 returns 一个 HTML 页面,浏览器随后可以呈现该页面(以及 运行 其中的任何 Javascript)。在 Express 中,您可以使用res.render()
、res.sendFile()
或res.send()
甚至res.write()
将 HTML 数据发送回浏览器。您使用哪种取决于数据源是什么以及哪种最适合。res.render()
通常与模板系统(如 EJS、nunjucks、Jade、Mustache 等)结合使用。res.sendFile()
发送一个已经构建好的静态文件。res.send()
从您的 Javascript 发送一个字符串(您可能是动态创建的)。浏览器中显示的网页可能希望从您的服务器请求一些数据。在这种情况下,网页中的 Javascript 将再次向服务器发送 GET 请求,其中 URL 对应于它想要的数据。然后服务器会发回 JSON 响应,网页中的 Javascript 会收到 JSON 并决定如何处理它(比如可能动态地向页面添加内容)。要在使用 Express 时将 JSON 响应发送回客户端,您可以使用
res.send(someObj)
或res.json(someObj)
。如果someObj
是 Javascript object,两者将做同样的事情。表单可以由浏览器从网页post编辑。这是在用户点击
<form>
中的提交按钮时完成的,浏览器从表单中的字段收集值并将它们发送到action
属性中的 link<form>
标记通常作为 POST 方法。然后服务器将接收该数据,按预期处理它并发送响应。浏览器会将响应呈现为新网页。有时,服务器想要发生的是将表单 post 然后让浏览器切换到新的 URL。为此,服务器使用 3xx 状态代码(通常为 302)进行响应,并在响应中将Location
header 设置为新的 URL。在这种情况下,浏览器看到 302 响应状态,获取Location
header 然后从服务器请求新的 URL。服务器获取新的 URL 请求,将内容提供回浏览器(在这种情况下通常是 HTML 页面),然后浏览器呈现该新页面。如果您的服务器希望告诉客户端转到新的 http URL,那么它可以使用类似res.redirect(302, newURL)
的内容。这只是一个快捷方式,它会自动将响应的 http 状态设置为 302,并将响应中的Location
header 设置为您传递的 URL。
因此,这些只是 real-world 如何使用不同的 HTTP 请求和响应的示例。何时执行哪一项完全取决于任何给定 http 请求的目的和情况,而这完全取决于您的应用程序设计。
Please explain what are the methods to send these type of responses using Node, Express, Fetch API.
不清楚你的意思。 fetch()
API 是一个浏览器 API,可用于从网页 Javascript 向任何目标服务器发送 http 请求,然后接收返回给 Javascript.
Express 是一种构建 Web 服务器并定义您希望它接收和处理的 URLs/http 方法的方法。
Node是Express运行所在的开发环境。