0

我第一次尝试使用 Node.js 尝试将参数从表单传递到我的服务器并在控制台上打印它们

我的 html

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Hello Node</title>
    </head>

    <body>

    <h1> we have a website</h1>
    <form action="/contact" enctype="application/json" method="POST">
        <input name="firstName" placeholder="firstName" type="text" size="30" />
        <input name="lastName" placeholder="lastName" type="text" size="30" />
    
        <input name="submit" type="submit" value="Send This">
    </form>

    </body>
</html>
  • 我试过有无enctype="application/json"

我的 app.js 文件

const express = require('express'); 
const app = express();
const bodyParser = require('body-parser') 
var jsonParser = bodyParser.json()

app.listen(3333, () => {
    console.log("Server is up and listening on 3003"); //print to the server console (the terminal!!)
})

app.post("/contact", jsonParser, function (req, res) {
  console.log("in /contact");
  console.log("request body:" + req.body);
  console.log("request body first name:" + req.body.firstName);
  console.log("request query first name:" + req.query.firstName);
})
  • 我试过有无app.use(bodyParser.json({ type: 'application/*+json' }))

输出:

[对象对象]

请求正文名字:未定义

请求查询名字:未定义

4

1 回答 1

0

根据Mozilla 文档 application/json,不允许将内容类型设置为 enctype 值,因此您可以使用 javascript 发送 json 或通过添加对 application/x-www-form-urlencoded 的支持app.use(bodyParser.urlencoded({ extended: false }))

于 2020-11-23T19:59:28.107 回答