我无法使用 NodeJs 在我的 MySQL 数据库上放置或删除任何内容
I cant PUT or DELETE anything on my MySQL DB with NodeJs
我不能在我的数据库中添加和删除任何东西,我认为我的核心是正确的
这是一个项目,运行 MariaDB 10.1.37,Apache 2。
代码:
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const port = 3000;
const mysql = require('mysql');
function execSQLQuery(sqlQry, res){
const connection = mysql.createConnection({
host: 'localhost',
port: 3306,
user: 'root',
password: '',
database: 'usdb'
});
connection.query(sqlQry, function(error, results, fields){
if(error)
res.json(error);
else
res.json(results);
connection.end();
console.log('executou!')
})
}
//cofigurando body parser para pegar os POSTS mais tarde
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
//definindo as rotas
const router = express.Router();
router.get('/',(req,res) => res.json({message: 'Funcionando!'}));
app.use('/',router);
router.get('/substances',(req, res) =>{
execSQLQuery('SELECT * FROM organicssubstances', res);
});
router.get('/substance/:id?', (req, res) =>{
let filter = '';
if(req.params.id) filter = ' WHERE id=' + parseInt(req.params.id);
execSQLQuery("SELECT * FROM organicssubstances"+filter, res);
});
router.get('/substance/:id', (req,res) =>{
execSQLQuery("DELETE FROM organicssubstances WHERE id=" + parseInt(req.params.id), res);
});
router.get('/substances', (req,res) =>{
const substance = req.body.substring(0,150);
const formula = req.body.substring(0,150);
execSQLQuery(`INSERT INTO organicssubstances(substance, formula) VALUES('${substance}','${formula}')`, res);
});
//inicia o servidor
app.listen(port)
console.log('API Funcionando!')
PUT 和 DELETE 代码:
router.get('/substance/:id', (req,res) =>{
execSQLQuery("DELETE FROM organicssubstances WHERE id=" + parseInt(req.params.id), res);
});
router.get('/substances', (req,res) =>{
const substance = req.body.substring(0,150);
const formula = req.body.substring(0,150);
execSQLQuery(`INSERT INTO organicssubstances(substance, formula) VALUES('${substance}','${formula}')`, res);
});
我在网站上看到这段代码,只是适应了我的使用,但无法正常工作。
https://i.imgur.com/cDyyio4.png
https://i.imgur.com/y5zruZG.png
据我所见,您应该将路由定义为 put 和 delete。没有得到
router.get(‘/urlforget’, callbackfunction);
router.put(‘/urlforput’, callbackfunction);
我不能在我的数据库中添加和删除任何东西,我认为我的核心是正确的
这是一个项目,运行 MariaDB 10.1.37,Apache 2。
代码:
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const port = 3000;
const mysql = require('mysql');
function execSQLQuery(sqlQry, res){
const connection = mysql.createConnection({
host: 'localhost',
port: 3306,
user: 'root',
password: '',
database: 'usdb'
});
connection.query(sqlQry, function(error, results, fields){
if(error)
res.json(error);
else
res.json(results);
connection.end();
console.log('executou!')
})
}
//cofigurando body parser para pegar os POSTS mais tarde
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
//definindo as rotas
const router = express.Router();
router.get('/',(req,res) => res.json({message: 'Funcionando!'}));
app.use('/',router);
router.get('/substances',(req, res) =>{
execSQLQuery('SELECT * FROM organicssubstances', res);
});
router.get('/substance/:id?', (req, res) =>{
let filter = '';
if(req.params.id) filter = ' WHERE id=' + parseInt(req.params.id);
execSQLQuery("SELECT * FROM organicssubstances"+filter, res);
});
router.get('/substance/:id', (req,res) =>{
execSQLQuery("DELETE FROM organicssubstances WHERE id=" + parseInt(req.params.id), res);
});
router.get('/substances', (req,res) =>{
const substance = req.body.substring(0,150);
const formula = req.body.substring(0,150);
execSQLQuery(`INSERT INTO organicssubstances(substance, formula) VALUES('${substance}','${formula}')`, res);
});
//inicia o servidor
app.listen(port)
console.log('API Funcionando!')
PUT 和 DELETE 代码:
router.get('/substance/:id', (req,res) =>{
execSQLQuery("DELETE FROM organicssubstances WHERE id=" + parseInt(req.params.id), res);
});
router.get('/substances', (req,res) =>{
const substance = req.body.substring(0,150);
const formula = req.body.substring(0,150);
execSQLQuery(`INSERT INTO organicssubstances(substance, formula) VALUES('${substance}','${formula}')`, res);
});
我在网站上看到这段代码,只是适应了我的使用,但无法正常工作。
https://i.imgur.com/cDyyio4.png https://i.imgur.com/y5zruZG.png
据我所见,您应该将路由定义为 put 和 delete。没有得到
router.get(‘/urlforget’, callbackfunction);
router.put(‘/urlforput’, callbackfunction);