programing

.find() mongoose에서 아무것도 발견되지 않으면 조치를 취합니다.

abcjava 2023. 5. 16. 22:02
반응형

.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

반응형