为了账号安全,请及时绑定邮箱和手机立即绑定

回调的优先级,如何使用 Node Express JS 处理 xmlhttprequest

回调的优先级,如何使用 Node Express JS 处理 xmlhttprequest

慕的地6264312 2023-07-06 10:12:39
我在管理 xmlhttprequest post 请求时遇到问题。这是节点快递服务器的代码:const fs = require("fs")const path = require("path")const express = require("express")const app = express()const port = 3001app.use(express.static(__dirname))app.use("/", (request, response) => {  console.log("inside app.use")  response.sendFile(path.join(__dirname, "index.html"))})app.post("/database", (request, response) => {  console.log("inside app.use02")  console.log("request-body: "+request)  console.log("response-body: "+response)  response.send("it works")})app.listen(port)问题是,当我对 /database url 发出 ajax 请求时,它由 app.use 语句而不是 app.post 语句提供服务。这是为什么?我不明白expressjs是如何工作的,它是什么?const btnForm = document.getElementById("form-btn")const input01 = document.getElementById("firstName")const input02 = document.getElementById("lastName")const input03 = document.getElementById("profession")const form = document.getElementById("form01")form.addEventListener("submit", sendForm)const httprequest = new XMLHttpRequest()const FD = new FormData()function sendForm(event){  event.preventDefault()  console.log("sendForm")  FD.append(input01.name, input01.value)  FD.append(input02.name, input02.value)  FD.append(input03.name, input03.value)  httprequest.open("POST", "http://localhost:3001/database")  httprequest.send(FD)  }我想知道的是为什么 ajax 请求首先由 app.use 语句而不是 app.post 语句提供服务,我认为既然我正在执行 ajax post 请求,它应该得到 app.post 的响应声明,鄙视他之前调用的 app.use 声明。
查看完整描述

1 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

你的代码应该是


app.get("/", (request, response) => {


  console.log("inside app.use")


  response.sendFile(path.join(__dirname, "index.html"))



})

app.get / app.post 是定义路由的。而app.use是附加中间件。


查看完整回答
反对 回复 2023-07-06
  • 1 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信