节点JS PostgreSQL TypeError:无法读取未定义的属性'then'

时间:2019-04-27 18:59:00

标签: node.js typeerror

在以下节点js代码中:

function saveAction(request, response) {
  const movie = {
    id: request.body.id,
    title: request.body.title,
    year: request.body.year,    
  };
  model.save(movie).then(
   () => {
      response.redirect(request.baseUrl);
   },
    error => { 
       response.send(error);
   },
  );
}

我收到以下错误:

  

TypeError:无法在saveAction(C:\ MyNode \ movie-db \ movie \ controller.js:37:20)读取未定义的属性'then'
  第37行:model.save(movie).then(

如何解决该错误? 感谢您的提示。

2 个答案:

答案 0 :(得分:0)

您的“模型”未定义。您只能在Promise上使用then,因此您需要首先将模型与表的对象实例相关联,然后保存才能工作。应该是这样的:

let model = new Movie(movie)  //assuming you named your table model as Movie and this is a new record. 
let model = Movie.findOne({your condition to find goes here}); // if you are updating you can also use update function directly. 

然后您可以使用model.save().then....

我建议使用sequelize作为postgresql的orm。它将大大简化您的数据库操作。

答案 1 :(得分:0)

我在文件中忘记了“});”和postgresgl语法不同,我不能一对一接管mysql语句。该代码现在可以使用。 我能够使用主要的sql命令。感谢您的好意咨询。 最好的问候