[英]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.