Here is my code:
var express = require('express'),
http = require('http'),
path = require('path'),
hash = require('./pass').hash;
var moment = require('moment');
var bcrypt = require('bcrypt');
var app = express();
var methodOverride = require('method-override');
var mysql = require('mysql');
connection.connect(function(err){
if(!err) {
console.log("Database is connected ... nn");
} else {
console.log("Error connecting database ... nn");
}
});
/*
Middlewares and configurations
*/
app.configure(function () {
app.use(express.bodyParser());
app.use(express.cookieParser('Authentication Tutorial '));
app.use(express.session());
app.use(methodOverride(function(req, res){
if (req.body && typeof req.body == 'object' && '_method' in req.body)
{
var method = req.body._method;
delete req.body._method;
return method;
}
}));
app.use(express.static(path.join(__dirname, 'public')));
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
});
var connection = mysql.createConnection({
host : 'hostss',
user : 'user',
password : 'password*',
database : 'db'
});
app.use(function (req, res, next) {
var err = req.session.error,
msg = req.session.success;
delete req.session.error;
delete req.session.success;
res.locals.message = '';
if (err) res.locals.message = '<p class="msg error">' + err + '</p>';
if (msg) res.locals.message = '<p class="msg success">' + msg + '</p>';
next();
});
/*
Helper Functions
*/
function user_exits(req, res, next) {
var username= req.body.username;
connection.query("SELECT * FROM user WHERE username =?",[username],function (error, results, fields) {
if (error) {
console.log(error);
res.send("fail internal error"+"\r\n");
}
if (results.length >0) {
console.log('User is Already Exists');
res.send("fail user already exists"+"\r\n");
} else {
console.log('No user Available oN that name, U can insert it');
next();
}
});
}
/*
Routes
*/
app.get("/", function (req, res) {
res.render("index", { moment: moment });
});
app.get("/signup", function (req, res) {
res.render("signup",{ moment: moment });
});
app.post("/signup",user_exits,function (req, res){
bcrypt.hash(req.body.password, 5, function( err, bcryptedPassword) {
var users={
"username":req.body.username,
"email":req.body.email,
"password":bcryptedPassword,
}
console.log(users);
connection.query('INSERT INTO user SET ?',users, function (error, results, fields) {
if (error) {
console.log("error ocurred",error);
res.send({
"code":400,
"failed":"error ocurred"
});
}else{
console.log('The solution is: ', results);
res.send({
"code":200,
"success":"user registered sucessfully"
});
}
});
});
});
app.get("/login", function (req, res) {
res.render("login",{ moment: moment });
});
app.post("/login",function (req, res) {
var sess = req.session;
var username= req.body.username;
var password = req.body.password;
connection.query('SELECT * FROM user WHERE username = ?',[username], function (error, results, fields) {
if (error) {
console.log(error);
}else{
if(results.length >0){
bcrypt.compare(password, results[0].password, function(err, doesMatch){
if (doesMatch){
req.session.userId = results[0].id;
req.session.user = results[0];
console.log(results[0].id);
res.redirect('/profile/'+results[0].id);
}else{
res.send({
"code":204,
"success":"Email and password does not match"
});
}
});
}
else{
console.log("fine");
}
}
});
});
But when I upload it on DigitalOcean server the form is not working? please developer help me to fix that problem.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Hi there,
Just a quick follow up on this question in case that anyone comes across this in the future.
What I could suggest in such cases usually is:
pm2pm2 logs using the pm2 logs to see what it might be causing the problemAlternatively, you could use the DigitalOcean App platform so that you don’t have to do any server configuration:
https://docs.digitalocean.com/products/app-platform/reference/buildpacks/nodejs/
Also, I could suggest following the steps here on how to deploy a Node app to DigitalOcean:
Best,
Bobby
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.