【发布时间】:2021-05-02 10:13:05
【问题描述】:
我一直在尝试在我的 nodejs 服务器上获取使用 axios 发送的表单数据。但我做不到。 如果我将相同的请求作为响应发回,那么我就可以查看数据。但不在服务器上。我不知道为什么会这样。 查看我的代码以更好地了解我的问题。
import React,{useState, useEffect} from "react";
--other imports--
import axios from 'axios';
function Hea() {
--Hooks--
const handleSubmit = e => {
e.preventDefault();
console.log(userName + " " + passObj.userPassword + " " + passObj.userPassword2 + " " + userEmail)
var data = {username: userName,
password: passObj.userPassword,
email: userEmail}
var jsondata = JSON.stringify(data)
axios.post('/register',
jsondata
)
.then(function (response) {
console.log(response.config.data);
})
.catch(function (error) {
console.log("error");
});
}
function checkmatch(){
--Validate function--
function checkmail(){
--Validate function--
return (
--FORM--
}
export default Hea;
请注意,我控制台 response.config.data 我确实得到了正确的结果。 此外,我尝试在没有 JSON.stringify() 的情况下发送数据并使用一些标头。但结果是一样的。 这是nodejs代码。
const express = require('express')
const mongoose = require('mongoose');
const mainroutes = require('./routes/mainroutes')
const cors = require('cors')
const app = express()
const port = 3763
app.use(mainroutes)
app.use(express.static('public'))
app.use(cors())
app.use(express.json())
app.use(express.urlencoded({
extended: true
}))
app.listen(port, () => {
console.log(`App Running on port ${port}.`)
})
这是 routes.js 代码
var express = require('express')
var router = express.Router()
router.post('/register', function (req, res) {
res.send(`<h1>Response from server ${req} </h1>`);
console.log(req.body , req.data, req.config);
})
module.exports = router
现在,由于某种原因,这个
来自服务器 ${req} 的响应
`在我的反应应用程序中作为响应对象正确读取,在这里我也可以正确查看数据。但在服务器 req.body 、 req.data、 req.config 结果为 undefined undefined undefined。【问题讨论】:
标签: node.js reactjs express axios body-parser