创建实例
虽然模型是一个类,但不应直接使用new运算符创建实例。相反,应该使用build方法:
const jane = User.build({ name: "Jane" });console.log(jane instanceof User); // trueconsole.log(jane.name); // "Jane"
然而,上面的代码根本不与数据库通信(请注意,它甚至不是异步的)!这是因为build方法只创建一个表示可以映射到数据库的数据的对象。为了在数据库中真正保存(即持久保存)该实例,应使用save方法:
await jane.save();console.log('Jane was saved to the database!');
一个非常有用的快捷方式:create方法
Sequelize提供了create方法,它将上面展示的build和save方法组合成一个方法:
const jane = await User.create({ name: "Jane" });// Jane exists in the database now!console.log(jane instanceof User); // trueconsole.log(jane.name); // "Jane"
Note: logging instances
默认值
更新实例
如果更改了实例某个字段的值,再次调用save将相应地更新它:
const jane = await User.create({ name: "Jane" });console.log(jane.name); // "Jane"jane.name = "Ada";// 虽然看上去修改了实例的name属性,但实际上数据库中的name属性的值依然是"Jane"// 通过调用save方法await jane.save();// Now the name was updated to "Ada" in the database!
