0

I want make auth app using nodejs and got error like the title :(

but code for app.js is already like this

var createError = require('http-errors'); var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var logger = require('morgan'); var session = require('express-session') var app = express(); // 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(session({ secret: '123456cat', resave: false, saveUninitialized: true, cookie: { maxAge: 60000 } })) app.use(express.static(path.join(__dirname, 'public'))); var registrationRouter = require('./routes/registration-route').default; var loginRouter = require('./routes/login-route').default; var dashboardRouter = require('./routes/dashboard-route').default; var logoutRouter = require('./routes/logout-route'); app.use('/', registrationRouter); app.use('/', loginRouter); app.use('/', dashboardRouter); app.use('/', logoutRouter); // 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('error'); }); app.listen(3000); module.exports = app; 

this is registration-route.js

var express = require('express'); var router = express.Router(); var db = require('../database'); // to display registration form router.get('/register', function(req, res, next) { res.render('registration-form'); }); // to store user input detail on post request router.post('/register', function(req, res, next) { inputData ={ username: req.body.username, email_address: req.body.email_address, password: req.body.password, confirm_password: req.body.confirm_password } // check unique email address var sql='SELECT * FROM registration WHERE email_address =?'; db.query(sql, [inputData.email_address] ,function (err, data, fields) { if(err) throw err if(data.length>1){ var msg = inputData.email_address+ "was already exist"; }else if(inputData.confirm_password != inputData.password){ var msg ="Password & Confirm Password is not Matched"; }else{ // save users data into database var sql = 'INSERT INTO registration SET ?'; query(sql, inputData, function (err, data) { if (err) throw err; }); var msg ="Your are successfully registered"; } res.render('registration-form',{alertMsg:msg}); }) }); module.exports = router; 

login-route.js

var express = require('express'); var router = express.Router(); var db = require('../database'); /* GET users listing. */ router.get('/login', function(req, res, next) { res.render('login-form'); }); router.post('/login', function(req, res){ var email = req.body.email; var password = req.body.password; var sql='SELECT * FROM registration WHERE email_address =? AND password =?'; db.query(sql, [email, password], function (err, data, fields) { if(err) throw err if(data.length>0){ req.session.loggedinUser= true; req.session.email= email; res.redirect('/dashboard'); }else{ res.render('login-form',{alertMsg:"Your Email Address or password is wrong"}); } }) }) module.exports = router; 

logout-route.js

var express = require('express'); var router = express.Router(); /* GET users listing. */ router.get('/logout', function(req, res) { req.session.destroy(); res.redirect('/login'); }); module.exports = router; 

dashboard-route.js

var express = require('express'); var router = express.Router(); /* GET users listing. */ router.get('/dashboard', function(req, res, next) { if(req.session.loggedinUser){ res.render('dashboard',{email:req.session.emailAddress}) }else{ res.redirect('/login'); } }); module.exports = router; 

I already see questions like this but none of the answers are working for my case problem also I'd tried to npm clear cache --force but nothing changed

also had been uninstalled and reinstalled for node_modules , package-lock but always got same error

2
  • This question has been answered here: stackoverflow.com/questions/28549833/… Commented Jan 23, 2022 at 5:48
  • not worked I still got error sorry :( Commented Jan 23, 2022 at 8:17

1 Answer 1

1

Change all of these:

var registrationRouter = require('./routes/registration-route').default; 

to remove the .default so you just have this:

const registrationRouter = require('./routes/registration-route'); 

.default is something that is used with ESM modules, not with CommonJS modules.


Also, you shouldn't be using var any more. It's obsolute now. Use const for these.

Sign up to request clarification or add additional context in comments.

2 Comments

thanks it is working now :)) can I ask question here??
@refia - You can clarify something about your question or the answer here. If it's a new question about a new topic, then please post a new question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.