Я пытался добавить новую запись в таблицу, используя метод POST, но это не работает.
var crypto = require('crypto');
var uuid = require('uuid');
var express = require('express');
var mysql = require('mysql');
var bodyParser = require('body-parser');
//Connection to MySQL
var con = mysql.createConnection({
host: 'localhost',
user:'root',
password:'',
database:'database'
});
// Password
var genRandomString = function(length) {
return crypto.randomBytes(Math.ceil(length/2)).toString('hex') // convert to hex format
.slice(0,length); // return required number of characters
};
var sha512 = function(password, salt) {
var hash = crypto.createHmac('sha512', salt); // use sha512
hash.update(password);
var value = hash.digest('hex');
return {
salt: salt,
passwordHash: value
};
};
function saltHashPassword(userPassword) {
var salt = genRandomString(16); // generates random string with 16 characters to salt
var passwordData = sha512(userPassword, salt);
return passwordData;
}
var app = express();
app.use(bodyParser.json()); // Accept JSon params
app.use(bodyParser.urlencoded({extended: true})); // Accept URL Encoded params
app.post('/register', (req, res, next)=> {
var post_data = req.body; // Get POST params
var uid = uuid.v4(); //get UUID v4
var plaint_password = post_data.password; // get password from post params
var hash_data = saltHashPassword(plaint_password);
var password = hash_data.passwordHash; // get hash value
var salt = hash_data.salt; // get salt
var name = post_data.name;
var email = post_data.email;
//
// The problem is here
//
con.query('SELECT * FROM user where email=?', [email], function(err, result, fields){
con.on('error', function(err) {
console.log('[MySQL ERROR]', err);
});
if (result && result.length)
res.json('User already exists!');
else {
con.query('INSERT INTO `user` (`unique_id`, `name`, `email`, `encrypted_password`, `salt`, `created_at`, `updated_at`) VALUES (?, ?, ?, ?, ?, NOW(), NOW())',[uid,name,email,password,salt],function(err, result, fields) {
con.on('error', function(err) {
console.log('[MySQL ERROR]', err);
res.json('Some registration error occured: ', err);
});
res.json('User have been registered successfully');
})
}
});
})
//Start Server
app.listen(3000, () => {
console.log('Something cool is running on port 3000');
})
Затем я использую клиент AdvancesREST для отправки этих параметров в мою БД, это , но новая запись не отображается