ax ios get запрос к mongodb возвращает пустые данные - PullRequest
1 голос
/ 13 января 2020

Я делаю запрос ax ios от внешнего интерфейса через узел к базе данных Mongodb, запрашивая userName на основе userId. Запрос возвращается как выполненный, но данные не возвращаются.

Это коллекция пользователей Mongodb:

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

Это файл схемы 'Users'

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 возвращается в виде пустой строки.

Любые идеи, почему запрос не работает.

1 Ответ

1 голос
/ 13 января 2020

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'}})
...