【发布时间】:2023-02-07 23:20:59
【问题描述】:
我正在学习教程,现在正尝试使用 app.post 将数据发送到我的 MySQL 数据库。当我转到运行请求的本地主机站点时(我的本地主机是localhost:8800/shoes),它不会更新/插入数据,它只显示我在 MySQL 中的当前数据库。但是在保存JS文件的视频中,数据立即上传。
import express from "express"
import mysql from "mysql"
const app = express()
const db = mysql.createConnection({
host: "localhost",
user: "root",
password: "qwerty",
database: "marketplace"
})
app.get("/", (req, res) => {
res.json("this is the backend")
})
app.get("/shoes", (req, res) => {
const q = "SELECT * FROM `marketplace`.`shoes`"
db.query(q, (err, data) => {
if(err) return res.json(err)
return res.json(data)
})
})
app.post("/shoes", (req, res) => {
const q = "INSERT INTO `marketplace`.`shoes` (`id`, `prod_name`, `prod_description`, `image`) VALUES(?)";
const values = [
"222",
"item3",
"item 3 description",
"item3 image"
];
db.query(q, [values], (err, data) => {
if(err) return res.json(err)
return res.json(data)
})
})
app.listen(8800, () => {
console.log("connected to backend")
})
我试图通过删除 app.get 来解决它,我在本地主机中收到的是 Cannot GET /shoes。
import express from "express"
import mysql from "mysql"
const app = express()
const db = mysql.createConnection({
host: "localhost",
user: "root",
password: "qwerty",
database: "marketplace"
})
app.get("/", (req, res) => {
res.json("this is the backend")
})
// app.get("/shoes", (req, res) => {
// const q = "SELECT * FROM `marketplace`.`shoes`"
// db.query(q, (err, data) => {
// if(err) return res.json(err)
// return res.json(data)
// })
// })
app.post("/shoes", (req, res) => {
const q = "INSERT INTO `marketplace`.`shoes` (`id`, `prod_name`, `prod_description`, `image`) VALUES(?)";
const values = [
"222",
"item3",
"item 3 description",
"item3 image"
];
db.query(q, [values], (err, data) => {
if(err) return res.json(err)
return res.json(data)
//return res.json("test")
})
})
app.listen(8800, () => {
console.log("connected to backend")
})
所以我怀疑问题出在app.post 但我在视频中有完全相同的代码。我什至尝试了异步,但它仍然不起作用
app.post("/shoes", async (req, res)
请帮忙怎么办
【问题讨论】:
-
你的 sql 查询
Values每个参数都应该有一个?,所以,VALUES(?,?,?,?)
标签: javascript mysql node.js database express