Почему запрос не полностью передается в БД?
Есть вот такой код:
app.get('/reg',function(req,res){
res.render('register');
});
app.post('/reg', urlencodedParser ,function(req,res){
con.connect(function(err){});
let login = '\''+req.body.login+'\',';
let pass = '\''+req.body.pass+'\'';
let query = "INSERT INTO `myuser` (login,password) VALUES ("+login+pass+");";
console.log(query);
con.query(query,function(err,result,field){});
con.end(function(err){})
res.render('register',{});
});
Когда захожу на сервер и ввожу данные, в базу данных (смотрю в mysqlи phpmyadmin) добавляется только первый раз поля ввода.
Если что, то ошибок нода не выдает, app.post запрос действует верно, а все модули у меня подключены выше по файлу.
Почему и как исправить?
PS: Если вместо переменных логин и пароль ввести обычные данные они отлично запишутся в БД. Поля в БД login и password имеют тип varchar.
Ответы (1 шт):
Автор решения: nörbörnën
→ Ссылка
Попробуйте написать более чисто и добавить вывод ошибок в лог:
// @ts-check
const express = require('express');
const bodyParser = require('body-parser');
const mysql = require('mysql');
const db = mysql.createConnection({
host: 'localhost',
user: 'me',
password: 'secret',
database: 'my_db'
});
const app = express();
const urlencodedParser = bodyParser.urlencoded({ extended: true });
app.get('/reg', (req, res) => {
res.render('register');
});
app.post('/reg', urlencodedParser, (req, res) => {
console.log(req.body);
const sql = `INSERT INTO myuser(login, password) VALUES (?)`;
const binds = [
req.body.login,
req.body.pass
];
db.query(sql, [ binds ], (err, data, fields) => {
if (err) {
console.error(err);
throw err;
}
console.log(data);
console.log(fields);
res.render('register', {});
});
});
app.listen(3003, 'localhost');