簡體   English   中英

我的 sqlite 項目在添加到表時不斷拋出錯誤

[英]My sqlite project keeps throwing an error when adding to a table

我的服務器上有這段代碼,但每當它運行時,它總是給我一個錯誤。 當我 go 到 Chrome 中的開發人員控制台時,它只是說錯誤,但沒有更多信息可以幫助我找出原因。 我是從模板中制作的,並且我一遍又一遍地進行了更改,但我無法弄清楚它為什么停止工作。 任何幫助表示贊賞。

這是代碼:

// endpoint to add a dream to the database
app.post("/addDream", (request, response) => {
  console.log(`add to dreams ${request.body.name} ${request.body.price} ${request.body.email} ${request.body.description} ${request.body.photoID} ${request.body.date}`);

  // DISALLOW_WRITE is an ENV variable that gets reset for new projects
  // so they can write to the database
  if (!process.env.DISALLOW_WRITE) {
    const cleansedName = cleanseString(request.body.name);
    const cleansedPrice = cleanseString(request.body.name);
    const cleansedEmail = cleanseString(request.body.name);
    const cleansedState = cleanseString(request.body.name);
    const cleansedDescription = cleanseString(request.body.name);
    const cleansedphotoID = cleanseString(request.body.name);
    const cleansedDate = cleanseString(request.body.name);

    db.run("INSERT INTO Dreams (name, price, email, description, photoID, date) VALUES (cleansedName, cleansedPrice, cleansedEmail, cleansedState, cleansedDescription, cleansedphotoID, cleansedDate);", error => {
      if (error) {
        response.send({ message: "error!" });
        console.log("error")
      } else {
        response.send({ message: "success" });
        console.log("success")
      }
    });
  }
});

這是在我更改之前有效的模板的原始代碼:

// endpoint to add a dream to the database
app.post("/addDream", (request, response) => {
  console.log(`add to dreams ${request.body.dream}`);

  // DISALLOW_WRITE is an ENV variable that gets reset for new projects
  // so they can write to the database
  if (!process.env.DISALLOW_WRITE) {
    const cleansedDream = cleanseString(request.body.dream);
    db.run(`INSERT INTO Dreams (dream) VALUES (?)`, cleansedDream, error => {
      if (error) {
        response.send({ message: "error!" });
      } else {
        response.send({ message: "success" });
      }
    });
  }
});

如果有幫助,這里是完整項目的鏈接: https://glitch.com/edit/#?/beta2-droneswap.path=server.js%3A215%3A0

感謝您抽出寶貴時間,再次感謝您的幫助。


編輯:啟動時發生了另一個錯誤,但我修復了它,它仍然無法正常工作。 當前錯誤發生在我嘗試添加列表時。 我很確定它與第 166 行附近的 sql 代碼有關。

這是我認為錯誤所在的當前代碼:

// endpoint to add a dream to the database
app.post("/addDream", (request, response) => {
  console.log(
    `add to dreams ${request.body.name}, ${request.body.price}, ${request.body.email}, ${request.body.state}, ${request.body.description}, ${request.body.photoID}, ${request.body.date}`
  );

  // DISALLOW_WRITE is an ENV variable that gets reset for new projects
  // so they can write to the database
  if (!process.env.DISALLOW_WRITE) {
    const cleansedName = cleanseString(request.body.name);
    const cleansedPrice = cleanseString(request.body.price);
    const cleansedEmail = cleanseString(request.body.email);
    const cleansedState = cleanseString(request.body.state);
    const cleansedDescription = cleanseString(request.body.description);
    const cleansedphotoID = cleanseString(request.body.photoID);
    const cleansedDate = cleanseString(request.body.date);

    db.run(
      `INSERT INTO Listings (name, price, email, state, photoID, date) VALUES (cleansedName, cleansedPrice, cleansedEmail, cleansedState, cleansedDescription, cleansedphotoID, cleansedDate)`,
      error => {
        if (error) {
          response.send({ message: "error!" });
          console.log("error");
        } else {
          response.send({ message: "success" });
          console.log("success");
        }
      }
    );
  }
});

因此,我重新混合了您的示例並在控制台錯誤日志中添加了更多內容,以便更好地查看錯誤發生的位置,並且看起來您的數據庫創建未成功完成。 我認為這是因為您已經在第 165 行注釋掉了db.run調用中的內容。如果您不希望該代碼運行,您也應該在注釋塊中包含db.run調用,否則它會失敗運行,這會引發初始錯誤。 希望這可以幫助!

暫無
暫無

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

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