【问题标题】:ExpressJs : Get data of Form data bodyExpressJs : 获取表单数据体的数据
【发布时间】:2021-05-04 00:29:42
【问题描述】:

我用快递js创建api.

我通过 Postman:

POST http://localhost:3000/test

Form data :     email: 'nasd@gmail.com'

header :     Content-Type: 'application/x-www-form-urlencoded'

当我console.log(req.body)

它出现了:

{ '------WebKitFormBoundary9RYiOTi2ZDqN1AnB\r\n内容处置: 表格数据;姓名': '"电子邮件"\r\n\r\nasd@gmail.com\r\n------WebKitFormBoundary9RYiOTi2ZDqN1AnB--\r\n' }

如何获取电子邮件字段?

这是我的代码:

let express = require("express");
let morgan = require("morgan");
let bodyParser = require("body-parser");
let expressValidator = require("express-validator");
let session = require("express-session");
var multer = require("multer");
var upload = multer();
let MySQLStore = require("express-mysql-session")(session);

let app = express();
let PORT = 3000;

let options = {
  host: "localhost",
  port: "3306",
  user: "root",
  password: "12345678",
  database: "timekeeper4",
};
let sessionStore = new MySQLStore(options);

app.use(
  session({
    key: "session_cookie_name",
    secret: "session_cookie_secret",
    store: sessionStore,
    resave: true,
    saveUninitialized: false,
  })
);
app.use(morgan("dev"));
app.use(bodyParser.json());
app.use(expressValidator());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(upload.array());
app.use(express.static("public"));

app.use("/test", (req, res) => {
  console.log(req.body.name);
  console.log(req.body);
  res.send("Hello World!");
});

app.listen(PORT, () => {
  console.log("Server started on http://localhost:" + PORT);
});

module.exports = app;

【问题讨论】:

  • 您导入了 body-parser,但从未使用它将 body 数据解析为 JS 对象并使数据在您的代码中可用。

标签: node.js api express web


【解决方案1】:

需要使用urlencoded()

let express = require("express");
let morgan = require("morgan");
let bodyParser = require("body-parser");
let expressValidator = require("express-validator");
let session = require("express-session");
var multer = require("multer");
var upload = multer();
let MySQLStore = require("express-mysql-session")(session);

let app = express();
let PORT = 3000;

let options = {
  host: "localhost",
  port: "3306",
  user: "root",
  password: "12345678",
  database: "timekeeper4",
};
let sessionStore = new MySQLStore(options);

app.use(
  session({
    key: "session_cookie_name",
    secret: "session_cookie_secret",
    store: sessionStore,
    resave: true,
    saveUninitialized: false,
  })
);
app.use(morgan("dev"));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(expressValidator());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(upload.array());
app.use(express.static("public"));

app.use("/test", (req, res) => {
  console.log(req.body.name);
  console.log(req.body);
  res.send("Hello World!");
});

app.listen(PORT, () => {
  console.log("Server started on http://localhost:" + PORT);
});

module.exports = app;

【讨论】:

    猜你喜欢
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多