簡體   English   中英

node.js-.then()未定義

[英]node.js - .then() is not defined

我正在為我的API使用node.js + Express + sequelize。 我有一個post方法,在這里我使用bulkcreate(向一個表中同時插入幾行),但是會出錯:然后未定義。

這是我的錯誤:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>`enter code here`
</head>
<body>
<pre>ReferenceError: then is not defined<br> &nbsp; &nbsp;at router.post (C:\Users\Desktop\PROYECTOS\viajeros-api\routes\travellers.js:143:5)<br> &nbsp; &nbsp;at Layer.handle [as handle_request] (C:\Users\Desktop\PROYECTOS\viajeros
....
</body>
</html>

這是我的張貼方法:

router.post('/:id/countries', (req, res) => {

  const travellerId = req.params.id;
  const registerJson = req.body;
    for(let i = 0; i < registerJson.length; i++) {
          models.travellers_countrie.bulkCreate([
            { traveller_id:travellerId, country_id:registerJson[i].id }
            ])
        };
    then(() => { 
      return models.travellers_countrie.findAll();
    }).then(paises => {
      console.log(paises)
    })
    .catch(error => {
      console.log('estamos en el error');
      console.log(error);
      let response = Errors.errorResponse(error);
      res.status(500).send(response);
    });
});

我無法解決問題。 有找到解決方案的想法嗎? 謝謝

如果要批量編輯,則應首先格式化數據,然后再更新。 在for循環中使用數據庫操作不是您的代碼中的好習慣

同樣,您在for循環和批量插入函數之外引用.then這就是其給出錯誤的原因。

參考此代碼,它現在應該可以工作

const dataArray = [];

  for(let i = 0; i < registerJson.length; i++) {
    dataArray.push({ traveller_id:travellerId, country_id:registerJson[i].id })          
  };

 models.travellers_countrie.bulkCreate(dataArray)
    .then(() => { 
      return models.travellers_countrie.findAll();
    }).then(paises => {
      console.log(paises)
    })
    .catch(error => {
      console.log('estamos en el error');
      console.log(error);
      let response = Errors.errorResponse(error);
      res.status(500).send(response);
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM