0

我正在尝试在存储之前检查是否存在。使用承诺永远不会达到保存新记录的地步,但它会告诉我它何时被复制......

我究竟做错了什么?

create: (person) => {
  return new Promise((resolve, reject) => {
    mongoose.connect(process.env.MONGODB_URL, {autoIndex: false})
    .then(
      () => {
        // Checking preexistence
        module.exports.readByEmail(person.email)
        .then((personFound)=>{
          if(personFound){
            reject("Person already exists.");
          }else{
            // Saving
            Person.create(person, (err, storedPerson) => {
              if(err) reject(err);
              resolve(storedPerson);
              mongoose.connection.close();
            });
          }
        });
      },
      err => {reject(err);}
    );
  });
}
4

2 回答 2

0

看看这是否适合你:

create: (person) => {
  return new Promise((resolve, reject) => {
    mongoose.connect(process.env.MONGODB_URL, {autoIndex: false})
    .then(() => 
        // Checking preexistence
        module.exports.readByEmail(person.email)
        .then((personFound)=>{
          if(personFound){
            reject("Person already exists.");
          } else {
            // Saving
            return Person.create(person, (err, storedPerson) => {
              if(err) reject(err);
              resolve(storedPerson);
              mongoose.connection.close();
            });
          }
        }),
      err => reject(err)
    );
  });
}

我为Person.create.

于 2018-11-09T01:05:24.177 回答
0

您是否设置Person为有效的猫鼬模型?

let Person = mongoose.model(...);

我会尝试

let newPerson = new Person(person);
newPerson
  .save()
  .then(storedPerson => resolve(storedPerson))
  .catch(err => reject(err));
于 2018-11-08T22:16:12.550 回答