【发布时间】:2020-07-31 00:55:37
【问题描述】:
我一直在尝试使用 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 客户端将这些参数发送到我的数据库,它是 ,但没有显示新记录
【问题讨论】:
-
听起来像是某处需要“提交”。