簡體   English   中英

express.js get 方法無法獲取 req.body 值

[英]express.js get method cannot get req.body value

我使用 vue3、vuex、express.js 和 mysql。 在下面的路由器獲取方法中,我調用“console.log(req.body)”並顯示“[object Object]”,我調用“console.log(req.body.userid)”並顯示“未定義”。

router.get('/',async function(req,res){
    const userId = req.body.userid;
    console.log("req body is: "+req.body);
    console.log("req.body.userid is: "+req.body.userid);
    .....
}

在下面的方法中,我將用戶 ID 值作為 json object 傳遞。 我叫“console.log(”post userid: “+userinfo.userid);” 並顯示正確的值“1”;

      async getsp(){         
        var userinfo = JSON.parse(localStorage.getItem('user'));
        console.log("post userid: "+userinfo.userid);
        var userid = userinfo.userid;
        var obj = {userid}; 
        return await axios.get('//localhost:8081/getSp',obj)
        .then(...)
      },

在我使用 body-parser 的主路由器文件中,文件上下文如下:

require("dotenv").config();

const express = require('express');      
const bodyParser = require('body-parser');
var cors = require('cors');

const signup = require('./userSignUp');
const login = require('./userLogin');
const createEvsp = require('./createEvsp');
const getSp = require('./getSp');
//const createFile = require('./createFile');

const app = express();        
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json())
app.use(cors()) 
app.use(express.json());

app.use(
   express.urlencoded({
   extended: true
   })
 );
 app.use("/signup",signup);
 app.use("/dologin",login);
 app.use("/createEvsp",createEvsp);
 app.use("/getSp",getSp);
 //app.use("/createFile",createFile);

 app.listen(8081,function () {    
     console.log('Server running at 8081 port');
 });

問題是對 HTTP 方法的理解以及 express 的工作原理

為了解決這個問題,需要使用快速中間件/:userid來訪問使用req.params.userid的參數

根據http標准發送數據我們一般使用POST請求。 堆棧中有一個很好的答案關於獲取 HTTP 請求的信息

賽義夫-艾丁

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM