Sending data to db via post request and sending response on browser window but not receiving it

I am making a todos app with register functionality. I am taking user data via forms and sending it to mysql db.
in post request i am sending res.send() or res.render() but not getting any response on browser window

//server.js
var express=require(‘express’);
var server=express();
var db=require(’./db.js’);

server.use(express.json());
server.use(express.urlencoded({extended:true}))

server.set(“view engine”, “hbs”);
server.set(“views”, “views”);

server.get(’/’,function(req,res){
db.createuser()
.then(function(){

})
.catch(function(err){
    res.send(err);
})   
res.render('index');

})

server.post(’/’, function(req,res){

}) //jb user index.hbs waale submit pe click krega tb ye chalega

/*
server.post(’/register’, function(req,res){
res.render(‘register_successful’);
})
*/
server.get(’/register’, function(req,res){
res.render(‘register.hbs’);
}) //jb user index.hbs waale register pe click krega tb ye chalega

server.use(express.static(‘views/images’));

server.post(’/register’,function(req,res){
db.adduser(req.body.email,req.body.username, req.body.password)
.then(function(res){
// res.render(‘register_successful’);
res.send(“Hello”)

        //res.render('register_successful');
        
    })
    .catch(function(err){
        res.send(err);
    })

})

server.get(’/register_successful’,function(req,res){

res.render('register_successful');

})

server.listen(2000,function(){
console.log(“server started at localhost://2000”);
})

//db.js
var mysql=require(‘mysql2’);

var connection=mysql.createConnection({
host:‘localhost’,
user:‘todos’,
password:‘todos’,
database:‘todos’,
insecureAuth:true
})

function createuser(){
return new Promise(function(resolve,reject){
connection.query(
CREATE TABLE IF NOT EXISTS users (ID INTEGER AUTO_INCREMENT PRIMARY KEY,EMAIL VARCHAR(60),USERNAME VARCHAR(60), PASSWORD VARCHAR(60))
),
function(err,rows){
if(err)
{
reject(err);
}
else{
resolve();
}
}
})
}

function adduser(email,username,password){
return new Promise(function(resolve,reject){
connection.query(
INSERT INTO users (EMAIL, USERNAME, PASSWORD) VALUES(?,?,?),[email, username, password]),
function(err,rows){
if(err){
reject(err);
}
else{
resolve();
}
}
})
}

exports=module.exports={
adduser,createuser
}

please suggest me a method to debug it

code seems fine, are you sure that you are sending post requests in the form?

just before clicking form submit btn, open network tab in inspector and observe events on btn click. see if something is wrong.

write lots of console.logs in code to test data and control flow (does control reaches the desired code??)

after clicking submit button i am able to see newly entered data in mysql but not getting the response on browser window…i am typing res.send(“hello”) bt its not working.

lol, just a silly mistake

res used in then part of promise is shadowed by res of middleware

yeah…got it thanks bro…
hey anirudh one more thing i want to ask if i am rendering a hbs file from server and i have added image tag in
hbs file but the src of img is hardcoded…so tht image is not visible can u suggest me how can i do it???

I didn’t understand this part. Pls elaborate.

Leave it…I got the soln.
Thanks sir

1 Like