首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取API和Node Js

获取API和Node Js
EN

Stack Overflow用户
提问于 2021-05-13 23:01:04
回答 1查看 817关注 0票数 0

一般来说,我们在制作网站时会给出2-3种类型的回复.

  1. 从请求起源于

的位置更改同一页面的内容

  1. 重定向到另一个页面/视图

  1. 重定向到另一个页面/视图,其中一些内容来自位于

后面的数据库

对于何时使用fetch api呈现来自后端rest的内容,以及在使用res.render()时使用模板系统使用expess,我感到困惑。这两种选择是相互替代的,还是我完全不明白的东西?

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-13 23:32:54

给定的http请求需要有特定的用途。对于任何特定的http请求,您可能需要做许多不同的事情。服务器应该发送什么样的响应完全取决于该http请求的目的。

以下是一些说明不同目的的例子:

  1. 浏览器可能只需要与给定资源/
  2. 相关联的
  3. 内容。为此,它向服务器发送GET,服务器返回表示HTML页面的响应。这种类型的http请求的一个例子是这个问题的URL:https://stackoverflow.com/questions/67527190/fetch-api-and-node-js。返回浏览器可以呈现的HTML页面(并在其中运行任何Javascript )。在Express中,您可以使用res.render()res.sendFile()res.send()甚至res.write()将HTML数据发送回浏览器。您使用的是什么,取决于数据的来源和最适合的。res.render()通常会与模板系统一起使用(比如EJS、nunjucks、Jade、Mustache等等)。res.sendFile()发送一个已经构建的静态文件。res.send()从Javascript (可能是动态创建的)发送一个字符串。

  1. 浏览器中显示的网页可能希望从服务器请求某些数据。在这种情况下,web页面中的Javascript将再次向服务器发送GET请求,其URL对应于它想要的数据。然后,服务器将返回一个JSON响应,web页面中的Javascript将接收到该JSON并决定如何处理它(比如动态地向页面添加内容)。若要在使用Express时向客户端发送JSON响应,可以使用res.send(someObj)res.json(someObj)。如果someObj是Javascript对象,那么两者都会做相同的事情。

  1. 表单可以通过浏览器从网页上发布。当用户点击<form>中的submit按钮,浏览器从表单中的字段中收集值并将其发送到<form>标记的action属性的链接(通常作为POST方法)时,就会这样做。然后,服务器将接收该数据,按预期进行处理并发送响应。浏览器将将响应呈现为新的网页。有时,服务器希望发生的是表单发布,然后浏览器切换到新的URL。为此,服务器使用3xx状态代码(通常为302)进行响应,并在对新URL的响应中设置Location头。在这种情况下,浏览器看到302个响应状态,抓取Location头,然后从服务器请求新的URL。服务器获取新的URL请求,将内容返回浏览器(在本例中通常是HTML页面),然后浏览器呈现该新页面。如果您的服务器希望告诉客户端转到一个新的http,那么它可以使用类似于res.redirect(302, newURL)的东西。这只是一个快捷方式,它自动将响应的http状态设置为302,并在对您传递的URL的响应中设置Location头。

因此,这些只是真实的例子,说明如何使用不同的http请求和响应。什么时候这样做完全取决于任何给定http请求的目的和环境,这完全取决于您的应用程序设计。

请解释使用Node、Express、Fetch发送这些类型响应的方法是什么。

你这么说是什么意思还不清楚。fetch() API是一个浏览器API,可用于从网页Javascript向任何目标服务器发送http请求,然后接收对该Javascript的响应。

Express是一种构建web服务器并定义您希望它接收和处理的URL/http方法的方法。

节点是Express运行的开发环境。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67527190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档