我从前端通过节点向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作为空字符串返回。
任何关于为什么请求不起作用的想法。
答案 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'}})