构建非持久性实例

为了创建定义类的实例,请执行以下操作. 如果你以前编写过 Ruby,你可能认识该语法. 使用 build - 该方法将返回一个未保存的对象,你要明确地保存它.

  1. const project = Project.build({
  2. title: 'my awesome project',
  3. description: 'woot woot. this will make me a rich man'
  4. })
  5. const task = Task.build({
  6. title: 'specify the project idea',
  7. description: 'bla',
  8. deadline: new Date()
  9. })

内置实例在定义时会自动获取默认值:

  1. // 首先定义模型
  2. class Task extends Model {}
  3. Task.init({
  4. title: Sequelize.STRING,
  5. rating: { type: Sequelize.TINYINT, defaultValue: 3 }
  6. }, { sequelize, modelName: 'task' });
  7. // 现在实例化一个对象
  8. const task = Task.build({title: 'very important task'})
  9. task.title // ==> 'very important task'
  10. task.rating // ==> 3

要将其存储在数据库中,请使用 save 方法并捕获事件(如果需要):

  1. project.save().then(() => {
  2. // 回调
  3. })
  4. task.save().catch(error => {
  5. // 呃
  6. })
  7. // 还可以使用链式构建来保存和访问对象:
  8. Task
  9. .build({ title: 'foo', description: 'bar', deadline: new Date() })
  10. .save()
  11. .then(anotherTask => {
  12. // 你现在可以使用变量 anotherTask 访问当前保存的任务
  13. })
  14. .catch(error => {
  15. // Ooops,做一些错误处理
  16. })