簡體   English   中英

axios get 對 mongodb 的請求返回空數據

[英]axios get request to mongodb returns empty data

我從前端通過節點向 Mongodb 數據庫發出 axios 請求,請求基於 userId 的用戶名。 請求已發出,但未返回任何數據。

這是 Mongodb 用戶集合:

{
    "_id" : ObjectId("5e1b46cb2e6f4c98904598b0"),
    "userId" : "foo@baz.com",
    "userName" : "Fool",
}

這是“用戶”架構文件

users model: 

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const UserSchema = new Schema({
    userId: String,
    userName: String,
  });

module.exports = mongoose.model('Users', UserSchema);

這是后端請求:

backend: 
const express = require('express');
const UserRoute = express.Router();
const Users = require('../Models/UserModel');

UserRoute.route('/fetchUserName').get(function (req, res) {
  Users.find({userId: req.query.userId}, {userName: 1})
    .exec(function (err, user) {
    if (err) {
      console.log(err);
      res.json(err);
    } else {
      console.log(user.data);
      res.json(user.data);
    }
  });
});

這是來自前端的實際請求:

getUserName = () => 
 axios.get('http://localhost:4000/Users/fetchUserName', {params: {userId: 'foo@baz.com'}})
   .then(res => {
       return res.data;
   });
};

res.data 作為空字符串返回。

為什么請求不起作用的任何想法。

userId 可能應該作為字符串發送。 所以要么:

const params {
  userId: 'foo@baz.com'
}
axios.get('http://localhost:4000/Users/fetchUserName', { params })

或者

axios.get('http://localhost:4000/Users/fetchUserName', {params: {userId: 'foo@baz.com'}})

暫無
暫無

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

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