如何解决res.send 和 app.post 有什么区别?
我是 express 和 HTTP 的新手。 express 库有 app.get、app.post 和 res.send。据我了解,app.get 使用/与 GET 和 app.post POST 一起使用。 res.send 会调用 POST 吗?
解决方法
res.send()
对进入您的 http 服务器的传入 http 请求发送响应。
app.post()
为您的 http 服务器中的特定 URL 和 POST 请求向 Express 注册一个请求处理程序,以便当您的 Express 服务器在该 URL 处收到一个 POST 请求时,它会调用这个请求处理程序。
以下是 res.send()
的示例:
// configure request handler for GET request to /
app.get("/",(req,res) => {
res.send("hi"); // send response to incoming http request
});
以下是 app.post()
的示例:
// this middleware reads and parses the body for content-type
// of application/x-www-form-urlencoded
app.use(express.urlencoded({extended: true}));
// configure request handler for POST request to /login
app.post("/login",res) => {
// in a real request handler,this would be some sort of username
// and password comparison in a database and using appropriate crypto
if (req.body.username === "John" && req.body.password === "foobar99") {
res.send("login successful");
} else {
res.status(401).send("Login failed");
}
});
express 库有 res.get 和 res.send。据我了解,res.get 使用 / 与 GET 一起使用。
您可能会因为没有 res.get
而感到困惑。也许你的意思是app.get()
?如果是这样,app.get()
会为对特定 URL 的 http GET 请求配置请求处理程序。因此,app.get("/books",...)
可能会显示所有可用图书的页面。
res.send 是否调用 POST?
没有。 res.send()
发送对 http 请求的响应。
以下是您能想到的步骤。
-
http 客户端(例如浏览器或任何代码段)创建一个 http 请求并将该请求发送到服务器。
-
该请求将具有 HTTP 动词(例如 GET、POST、PATCH 等)和 URL(例如
/login
或/books
。 -
请求发送到的 Web 服务器接收该请求。对于使用 Express 框架的 Web 服务器,Express 服务器会查看其已注册路由的列表(这些路由之前已注册为
app.get(...)
、app.post(...)
、app.use(...)
等。 .. 这些本质上是特定路由的侦听器。如果 Express 服务器找到与 http 请求动词和 URL 都匹配的已注册路由,则它会调用该路由处理程序并向其传递三个参数(req,res,next)
。 -
当请求处理程序代码被调用时,它可以检查
req
对象以查看有关传入请求的任何数据,例如确切的 URL、请求中的任何 http 标头等。它可以使用res
对象发送响应,例如在响应上设置任何 http 标头、设置内容类型、为响应设置 http 状态代码、创建和发送响应正文等。 .res.send()
是发送响应的一种方式。还有其他的,例如res.sendFile()
、res.json()
、res.sendStatus()
等等... -
在调用这些发送响应的方法之一后,底层引擎将该 http 响应发送回发送原始 http 请求的客户端,并且 HTTP 请求/响应被认为是完整的。
那是两个不同的模块/对象..
Express Router 支持服务器侦听和响应的 HTTP 方法 - .get()
、.post()
、.put()
。
通过中间件和处理程序链传递的参数之一是 Response,它有一个 .send()
方法将其响应发送回客户端。 Response 对象还可以增强为发送 JSON 等。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。