【发布时间】:2021-05-24 11:02:24
【问题描述】:
我使用 vue3、vuex、express.js 和 mysql。在下面的路由器获取方法中,我调用“console.log(req.body)”并显示“[object Object]”,我调用“console.log(req.body.userid)”并显示“undefined”。
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);
.....
}
在下面的方法中,我将 userid 值作为 json 对象传递。我叫“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');
});
【问题讨论】:
-
嗨,Amantuer,为了更好地理解您的问题,您确定要使用 GET 方法而不是 POST 吗?
-
@Sayf-Eddine 我想根据用户信息从服务器中搜索并获取值,那么使用get方法传递用户信息并取回值是否正确?
-
如果您只根据用户信息从服务器中搜索值,为什么不使用快速中间件
/:userid,您将使用req.params.userid访问参数?因为根据您要查找的内容,我认为这是最好的方法。根据http标准发送数据我们一般使用POST请求。
标签: javascript mysql node.js express vuex