猿问

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

我在管理 xmlhttprequest post 请求时遇到问题。这是节点快递服务器的代码:


const fs = require("fs")

const path = require("path")

const express = require("express")

const app = express()

const port = 3001




app.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 声明。


慕的地6264312
浏览 127回答 1
1回答

胡说叔叔

你的代码应该是app.get("/", (request, response) => {  console.log("inside app.use")  response.sendFile(path.join(__dirname, "index.html"))})app.get / app.post 是定义路由的。而app.use是附加中间件。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答