优先级,如何使用node express js处理xmlhttprequest发布请求

时间:2020-11-03 16:02:33

标签: javascript node.js express web

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

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)  

}

我想知道的是为什么为什么先由app.use语句而不是app.post语句处理ajax请求,我认为由于我正在执行ajax post请求,因此必须使用app.post语句,不看app.use语句之前被调用过。

1 个答案:

答案 0 :(得分:0)

您的代码应为

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

  console.log("inside app.use")

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


})

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

相关问题