.find() mongoose에서 아무것도 발견되지 않으면 조치를 취합니다.
mongodb에 일부 데이터를 저장하고 js/nodejs와 mongoose로 액세스하고 있습니다..find()를 사용하여 데이터베이스에서 문제가 없는 무언가를 찾을 수 있습니다.문제가 되는 것은 뭔가가 없다면 다른 일을 하고 싶다는 것입니다.현재 제가 시도하고 있는 것은 다음과 같습니다.
UserModel.find({ nick: act.params }, function (err, users) {
if (err) { console.log(err) };
users.forEach(function (user) {
if (user.nick === null) {
console.log('null');
} else if (user.nick === undefined) {
console.log('undefined');
} else if (user.nick === '') {
console.log('empty');
} else {
console.log(user.nick);
}
});
});
제가 액트.팸스가 닉 인덱스에 없을 것 같은 일을 할 때 그 어떤 불도 쏘지 않습니다.이런 일이 발생할 때는 전혀 위로할 내용이 없지만 실제로 있을 때는 user.nick이 로그에 기록되도록 합니다.저는 이렇게 반대로 하려고 했습니다.
UserModel.find({ nick: act.params }, function (err, users) {
if (err) { console.log('noooope') };
users.forEach(function (user) {
if (user.nick !== '') {
console.log('null');
} else {
console.log('nope');
}
});
});
하지만 이것은 여전히 기록되지 않았습니다.nope
내가 여기서 뭘 놓쳤지요?
만약 그것이 발견되지 않는다면, 그것은 단지 찾기 호출의 모든 것을 건너뛰는 것입니다. 하지만 만약 그것이 발견된다면, 제가 하고 싶지 않은 것들이 있다면, 저는 나중에 해야 합니다.:/
일치하는 항목이 없을 때 find() 반환[]
findOne()이 반환되는 동안null
따라서 다음 중 하나를 사용합니다.
Model.find( {...}, function (err, results) {
if (err) { ... }
if (!results.length) {
// do stuff here
}
}
또는:
Model.findOne( {...}, function (err, result) {
if (err) { ... }
if (!result) {
// do stuff here
}
}
UserModel.find({ nick: act.params }, function (err, users) {
if (err) { console.log(err) };
if (!users.length) { //do stuff here };
else {
users.forEach(function (user) {
console.log(user.nick);
});
}
});
그게 제가 할 수 있는 일입니다.
다음을 사용해야 했습니다.
if(!users.length) { //etc }
그것을 작동시키기 위해.
이걸로.
if(!users) {
res.send({message: "User not found"});
}else {
res.send({message: "User found"});
}
사용 후res.send(data)
또는console.log(data)
코드가 반환됩니다.[]
또는empty log/ empty res.send
이 코드를 사용해 보십시오.
if (data === null) {
console.log('record does not exist')
// or do something
}
내 프로젝트의 예
router.post('/updated-data', (req, res, next) => {
const userName = req.body.userName;
const newUserName = req.body.newUserName;
User.findOneAndUpdate({userName: userName}, {userName: newUserName}, {new: true}, (err, data) => {
if (err) {
console.log(err)
} else if (data === null || !data) {
res.send('kullanıcı bulunamadı')
} else {
console.log(newUserName)
res.send(data)
}
})
참고: 다른 예를 더 잘 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/9660587/do-something-if-nothing-found-with-find-mongoose
'programing' 카테고리의 다른 글
도커 컨테이너에 호스트 디렉토리를 마운트하는 방법 (0) | 2023.05.16 |
---|---|
사설 Github repo를 npm 종속성으로 사용하는 방법 (0) | 2023.05.16 |
파일의 특정 행을 git에 커밋 (0) | 2023.05.16 |
모든 테이블 이름을 나열하는 PostgreSQL 쿼리? (0) | 2023.05.16 |
Git의 분기에서 변경 사항을 가져오는 방법 (0) | 2023.05.11 |