我的 API 在 express + mariadb 中的方法不起作用
Method from my API in express + mariadb don't work
我在 MariaDB 和 ExpressJS 中有一个 API,并且可以正常工作获取路由...
const getAllBills = async (req, res) => {
try {
const conn = await pool.getConnection();
const result = await conn.query('SELECT * FROM facturas')
res.status(200).json(result);
} catch (err) {
res.status(500).json({
message: err.message
});
}
};
const createBills = async (req, res) => {
try {
const conn = await pool.getConnection();
const result = await conn.query(
'INSERT INTO facturas (total, nombre, apellido, ciudad, direccion, codigo_postal, cedula) VALUES (?, ?, ?, ?, ?, ?, ?)',
[req.body.total, req.body.nombre, req.body.apellido, req.body.ciudad, req.body.direccion, req.body.codigo_postal, req.body.cedula]
);
const deleteBills = async (req, res) => {
try {
const conn = await pool.getConnection();
const result = await conn.query('DELETE FROM facturas WHERE id = ?', [req.params.id]);
if (result.affectedRows === 0) {
res.status(404).json({
message: 'Factura no encontrada'
});
} else {
res.status(200).json(result);
}
} catch (err) {
res.status(500).json({
message: err.message,
});
}
}
这些是我的路线,除了 post 和 delete
之外都有效
const { Router } = require('express');
const router = Router();
const { getAllBills, getBillsByCedula, createBills, deleteBills } = require('../controllers/facturaControllers');
router.get('/facturas', getAllBills);
router.post('/facturas', createBills);
router.delete('/facturas/:id' , deleteBills);
然后,我不知道该怎么办,因为服务器确实可以正常工作,但是当我发出 POST 或 DELETE 请求时,我收到错误 500。
此代码缺少}
符号,creatbills
的function/logic和controller中的delete bill必须分开
尝试使用此代码:
const createBills = async (req, res) => {
try {
const conn = await pool.getConnection();
const result = await conn.query(
'INSERT INTO facturas (total, nombre, apellido, ciudad, direccion, codigo_postal, cedula) VALUES (?, ?, ?, ?, ?, ?, ?)',
[req.body.total, req.body.nombre, req.body.apellido, req.body.ciudad, req.body.direccion, req.body.codigo_postal, req.body.cedula]
);
} catch (err){
res.status(500).json({
message: err.message,
});
};
};
const deleteBills = async (req, res) => {
try {
const conn = await pool.getConnection();
const result = await conn.query('DELETE FROM facturas WHERE id = ?', [req.params.id]);
if (result.affectedRows === 0) {
res.status(404).json({
message: 'Factura no encontrada'
});
} else {
res.status(200).json(result);
}
} catch (err) {
res.status(500).json({
message: err.message,
});
};
};
我在 MariaDB 和 ExpressJS 中有一个 API,并且可以正常工作获取路由...
const getAllBills = async (req, res) => {
try {
const conn = await pool.getConnection();
const result = await conn.query('SELECT * FROM facturas')
res.status(200).json(result);
} catch (err) {
res.status(500).json({
message: err.message
});
}
};
const createBills = async (req, res) => {
try {
const conn = await pool.getConnection();
const result = await conn.query(
'INSERT INTO facturas (total, nombre, apellido, ciudad, direccion, codigo_postal, cedula) VALUES (?, ?, ?, ?, ?, ?, ?)',
[req.body.total, req.body.nombre, req.body.apellido, req.body.ciudad, req.body.direccion, req.body.codigo_postal, req.body.cedula]
);
const deleteBills = async (req, res) => {
try {
const conn = await pool.getConnection();
const result = await conn.query('DELETE FROM facturas WHERE id = ?', [req.params.id]);
if (result.affectedRows === 0) {
res.status(404).json({
message: 'Factura no encontrada'
});
} else {
res.status(200).json(result);
}
} catch (err) {
res.status(500).json({
message: err.message,
});
}
}
这些是我的路线,除了 post 和 delete
之外都有效const { Router } = require('express');
const router = Router();
const { getAllBills, getBillsByCedula, createBills, deleteBills } = require('../controllers/facturaControllers');
router.get('/facturas', getAllBills);
router.post('/facturas', createBills);
router.delete('/facturas/:id' , deleteBills);
然后,我不知道该怎么办,因为服务器确实可以正常工作,但是当我发出 POST 或 DELETE 请求时,我收到错误 500。
此代码缺少}
符号,creatbills
的function/logic和controller中的delete bill必须分开
尝试使用此代码:
const createBills = async (req, res) => {
try {
const conn = await pool.getConnection();
const result = await conn.query(
'INSERT INTO facturas (total, nombre, apellido, ciudad, direccion, codigo_postal, cedula) VALUES (?, ?, ?, ?, ?, ?, ?)',
[req.body.total, req.body.nombre, req.body.apellido, req.body.ciudad, req.body.direccion, req.body.codigo_postal, req.body.cedula]
);
} catch (err){
res.status(500).json({
message: err.message,
});
};
};
const deleteBills = async (req, res) => {
try {
const conn = await pool.getConnection();
const result = await conn.query('DELETE FROM facturas WHERE id = ?', [req.params.id]);
if (result.affectedRows === 0) {
res.status(404).json({
message: 'Factura no encontrada'
});
} else {
res.status(200).json(result);
}
} catch (err) {
res.status(500).json({
message: err.message,
});
};
};