I have a simple registration page which should store the users input (name,email,password) in a database. I am using express and node. The thing i wanted to try is to have all the database operations (insert,select etc) for registration in one file and send the response to the server from another file.
dbQuery.js
var express=require("express");
var app = express();
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'user_name',
password : 'password',
database : 'database'
});
connection.connect(function(err){
if(!err) {
console.log("Database is connected");
} else {
console.log("Error while connecting with database");
}
});
module.exports.register=function(callback){
app.get('/register',function(req,res){
var today = new Date();
var users={
"name":req.body.name,
"email":req.body.email,
"password":req.body.password,
"created_at":today,
"updated_at":today
}
return connection.query('INSERT INTO users SET ?',users, callback)
}
}
app.js
var express=require("express");
var connection = require('./dbQuery');
var app = express();
app.post('/register',function(req,res){
connection.register(function(error, results, fields){
if (error) {
res.json({
status:false,
message:'there are some error with query for registration'
})
}else{
console.log('is it coming here in else')
res.json({
status:true,
data:results,
message:'user registered sucessfully'
})
}
})
})
index.html
<html>
<body>
<form action="/register" method="POST">
First Name: <input type="text" name="name">
Email: <input type="text" name="email">
Password: <input type="password" name="password">
<input type="submit" value="Submit">
</form>
</body>
</html>
When i execute app.js the server just keep loading without giving anything
I expected the output should be displaying the json response on server ie 'user successfully registered' ,but it keeps on loading.
Try changing dbQuery.js to this:
var mysql = require("mysql");
var connection = mysql.createConnection({
host: "localhost",
user: "user_name",
password: "password",
database: "database"
});
connection.connect(function(err) {
if (!err) {
console.log("Database is connected");
} else {
console.log("Error while connecting with database");
}
});
module.exports.register = function(callback) {
var today = new Date();
var users = {
name: req.body.name,
email: req.body.email,
password: req.body.password,
created_at: today,
updated_at: today
};
connection.query("INSERT INTO users SET ?", users, callback);
};
You are doing wrong, here if am posting simple steps for an API by express
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
const i18n = require("i18n");
var indexRouter = require('./routes/index');
// this is the api file created under the routes folder
var apiRouter = require('./routes/api');
require('./database')
var app = express();
app.use(i18n.init);
i18n.configure({
locales: ['en', 'de'],
cookie: 'LocalLang',
defaultLocale: 'en',
extension: ".json",
directory: __dirname + '/locales',
register: global,
logDebugFn: function (msg) {
console.log('debug', msg);
},
logWarnFn: function (msg) {
console.log('warn', msg);
},
logErrorFn: function (msg) {
console.log('error', msg);
}
});
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/api', apiRouter);
// catch 404 and forward to error handler
app.use(function (req, res, next) {
next(createError(404));
});
// error handler
app.use(function (err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('pages/error');
});
module.exports = app;
var express = require('express');
var router = express.Router();
//Import your query.js file
const query = require('path for the file ./query')
router.post('/register',query.register)
module.exports = router;
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'user_name',
password : 'password',
database : 'database'
});
connection.connect(function(err){
if(!err) {
console.log("Database is connected");
} else {
console.log("Error while connecting with database");
}
});
exports.register = (req, res)=>{
var today = new Date();
var users = {
name: req.body.name,
email: req.body.email,
password: req.body.password,
created_at: today,
updated_at: today
};
connection.query("INSERT INTO users SET ?", users, (error,result)=>{
if(err)
return res.send({status:false, message:"Error in savind data in db"})
return res.send({status:true, message:"Resgistered sucessfully"})
});
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.