这是使用承诺与 Sequelize.js的正确方法吗?

Is this the proper way to use promises with Sequelize.js?

本文关键字:方法 js Sequelize 承诺      更新时间:2023-09-26
var newUser;
newUser = {
  name: req.body.name,
  email: req.body.email,
  username: req.body.username,
  password: req.body.password
};
global.db.User.create(newUser).then(function(dbUser) {
  var newEntity;
  newEntity = {
    name: newUser.name + " Default Entity"
  };
  return global.db.Entity.create(newEntity);
}).then(function(dbEntity) {
  console.log(dbEntity);
  return res.json(dbUser.display());
})["catch"](function(err) {
  console.log(err);
  return next(err);
});

global.db 是一个具有User模型和Entity模型的 Sequelize 对象。我想先创建一个用户,然后为该用户创建一个实体。这是将事情链接在一起以使承诺有用的正确方法吗?

如果您将catch作为.catch()而不是["catch"]调用,可能会更干净:

global.db.User.create(newUser).then(function(dbUser) {
  var newEntity;
  newEntity = {
    name: newUser.name + " Default Entity"
  };
  return global.db.Entity.create(newEntity);
}).then(function(dbEntity) {
  console.log(dbEntity);
  return res.json(dbUser.display());
}).catch(function(err) {
  console.log(err);
  return next(err);
});

让一切都很好,很均匀。

是的;这是完全正确的。