axios获取对mongodb的请求返回空数据

时间:2020-01-13 12:05:06

标签: node.js reactjs mongodb axios

我从前端通过节点向Mongodb数据库发出axios请求,请求基于userId的userName。该请求已完成,但没有返回任何数据。

这是Mongodb用户集合:

ngModel

这是“用户”架构文件

{
    "_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);
    }
  });
});

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

任何关于为什么请求不起作用的想法。

1 个答案:

答案 0 :(得分:1)

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