-1
这里我试图做的是检查是否有用户名和电子邮件匹配在数据库中,如果没有,请注册一个新用户。使用coffescript。Node.js Http POST永远挂在mysql查询
当我尝试做一个POST到路由,摩根打印
POST /注册 - - 质谱 - -
而且永远邮递员挂...
有没有控制台错误,没有POSTMAN响应...
任何人有任何想法是什么造成的问题?
app.post '/register', (req, res, next) ->
email = req.body.email
username = req.body.username
emailORUsernameExists = checkEmailUsername email, username
unless emailORUsernameExists
password = req.body.password
query = "INSERT INTO users (email, username, password) VALUES (" + email + "," + username + "," + password + ")"
bcrypt.genSalt 10, (err, salt) ->
bcrypt.hash password, salt, (err, hash) ->
# Store hashed password in DB.
connection.query query, (err, result) ->
if err
throw err
console.log "1 record inserted!"
checkEmailUsername = (mail, user) ->
query = "SELECT * FROM users WHERE email = ? OR username = ?"
connection.query query, [mail, user], (err, row, fields) ->
if err
console.log err
if row.length > 0
# return true if there is a matching username and password
return true
else
# if there is not, return false
return false
此外,JS版本
app.post('/register', function(req, res, next) {
var email, emailORUsernameExists, password, query, username;
email = req.body.email;
username = req.body.username;
emailORUsernameExists = checkEmailUsername(email, username);
if (!emailORUsernameExists) {
password = req.body.password;
query = "INSERT INTO users (email, username, password) VALUES (" + email + "," + username + "," + password + ")";
return bcrypt.genSalt(10, function(err, salt) {
return bcrypt.hash(password, salt, function(err, hash) {
return connection.query(query, function(err, result) {
if (err) {
throw err;
}
return console.log("1 record inserted!");
});
});
});
}
});
checkEmailUsername = function(mail, user) {
var query;
query = "SELECT * FROM users WHERE email = ? OR username = ?";
return connection.query(query, [mail, user], function(err, row, fields) {
if (err) {
console.log(err);
}
if (row.length > 0) {
return true;
} else {
return false;
}
});
};