创建实例

虽然模型是一个类,但不应直接使用new运算符创建实例。相反,应该使用build方法:

  1. const jane = User.build({ name: "Jane" });
  2. console.log(jane instanceof User); // true
  3. console.log(jane.name); // "Jane"

然而,上面的代码根本不与数据库通信(请注意,它甚至不是异步的)!这是因为build方法只创建一个表示可以映射到数据库的数据的对象。为了在数据库中真正保存(即持久保存)该实例,应使用save方法:

  1. await jane.save();
  2. console.log('Jane was saved to the database!');

一个非常有用的快捷方式:create方法

Sequelize提供了create方法,它将上面展示的build和save方法组合成一个方法:

  1. const jane = await User.create({ name: "Jane" });
  2. // Jane exists in the database now!
  3. console.log(jane instanceof User); // true
  4. console.log(jane.name); // "Jane"

Note: logging instances

默认值

更新实例

如果更改了实例某个字段的值,再次调用save将相应地更新它:

  1. const jane = await User.create({ name: "Jane" });
  2. console.log(jane.name); // "Jane"
  3. jane.name = "Ada";
  4. // 虽然看上去修改了实例的name属性,但实际上数据库中的name属性的值依然是"Jane"
  5. // 通过调用save方法
  6. await jane.save();
  7. // Now the name was updated to "Ada" in the database!

删除实例

重载实例

只保存特定字段

save方法的节约意识

整数值的递增和递减