Этот API получает параметр запроса, который фильтруется и передается в модель User mongoose, как показано в коде ниже, запрашивает mongodb и возвращает пустое значение.Почему это происходит, если все в порядке?
routes.route('/user')
.get( (req,res) => {
//const quuery = req.query;
//const {query} = req;
const {query} = req;
if (req.query.UserName){
query.UserName = req.query.UserName;
console.log("ok 2 " + query.UserName);
}
User.find({UserName:query.UserName}, (err, data)=> {
if (err){
console.log("not ok");
return res.send(err);
}
else {
console.log("ok: " + data);
return res.json(data);
}
});
});
Для тестирования моего API я использую почтальон или веб-браузер, используя этот URL: http://localhost:4000/api/user?UserName=smed
При проверке журнала вы можете видеть, что онвыводит параметр и данные с пустым значением.
Это модель Мангуста:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
let UserSchema = new Schema({
UserId: {
type: Number
},
PersonId: {
type: Number
},
UserName: {
type: String,
unique: true
},
Deactivated: {
type: Boolean
},
Password: {
type: String
},
SysCreationDate: {
type: Date
},
LastLoginDate: {
type: Date
}
},{collection:'User'});
module.exports = mongoose.model('User', UserSchema);
А данные в монго:
{"_id":{"$oid":"5d1037acde2b6feb37938db6"},"User":[{"UserId":
{"$numberInt":"1"},"PersonId":{"$numberInt":"1"},"UserName":"smed","Deactivated":false,"Password":"1234","SysCreationDate":"2016-06-23T21:42:31+07:00"},{"UserId":{"$numberInt":"2"},"PersonId":{"$numberInt":"2"},"UserName":"eper","Deactivated":false,"Password":"1234","SysCreationDate":"2016-06-23T22:42:31+07:00"}]}
у меня естьпроверил это на машине Windows 10 и Ubuntu 18.xx, и я получаю ту же ошибку.Это мои зависимости:
"dependencies": {
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"express": "^4.17.1",
"mongoose": "^5.6.2"
}
И NodeJS: v8.10.0
Ответ - пустой массив в json.Он должен запросить коллекцию User и вернуть объект, содержащийся, когда свойство UserName имеет значение «smed», параметр, который отправляется в запросе: http://localhost:4000/api/user?UserName=smed
Он должен возвращать данные монго (показанные ранее), когда UserName = smed
{"_id":{"$oid":"5d1037acde2b6feb37938db6"},"User":[{"UserId":{"$numberInt":"1"},"PersonId":{"$numberInt":"1"},"UserName":"smed","Deactivated":false,"Password":"1234","SysCreationDate":"2016-06-23T21:42:31+07:00"}]}