nodejs/Expressjs redirect after successful insertion

jackysatpal

I am working on a CRUD app in Nodejs/Expressjs with EJS as a templating engine.

I created a folder in my "views" folder, name login in which I have few files. Views folder contains all my .ejs files. Now after successful insertion (via a router), I want to redirect to an .ejs file (login/filename). But it is not working.

Here is my working directory:

Folder directory

I have added all relevant routers.

app.js:

var express = require('express'),
    path = require('path'),
    bodyParser = require('body-parser'),
    session = require('express-session'),
    expressValidator = require('express-validator'),
    flash = require('connect-flash'),
    multer = require('multer'),
    upload = multer({dest: './app/public/uploads/uploads'}),
    app = express();

//database connection
const { Client } = require('pg');
const connectionString = 'postgres://idid:rahulpalace@localhost/idid';

// set an enviornment variable for the port number. Default set to 3000
app.set('port', process.env.PORT || 3000);

//set EJS as the template engine
app.set('view engine', 'ejs');
app.set('views', 'app/views');

//set public folder
app.use(express.static('app/public'));

//body parser middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

//Express Session Middleware
app.use(session({
    secret: 'secret',
    saveUninitialized: true,
    resave: true
}));

//Express Messages Middleware
app.use(flash());
app.use(function (req, res, next) {
  res.locals.messages = require('express-messages')(req, res);
  next();
});

// Validator
app.use(expressValidator({
  errorFormatter: function(param, msg, value) {
      var namespace = param.split('.')
      , root    = namespace.shift()
      , formParam = root;

    while(namespace.length) {
      formParam += '[' + namespace.shift() + ']';
    }
    return {
      param : formParam,
      msg   : msg,
      value : value
    };
  }
}));

//function to hide very long text. Show only starting 10 length text
app.locals.truncateText = function(text, length){
    var truncateText = text.substring(0, length);
    truncateText += ' ...';
    return truncateText;
}

 /* creating routes */
//index.html
app.use(require('./routes/index'));
//team.html
app.use(require('./routes/team'));
//contact.html
app.use(require('./routes/contact'));
//publication.html
app.use(require('./routes/publication'));
//admin panel
app.use(require('./routes/login/login'));
//dashboard
app.use(require('./routes/login/dashboard'));
//view publication
app.use(require('./routes/login/view_publication'));
app.use(require('./routes/login/add_publication'));
app.use(require('./routes/login/edit_publication'));
app.use(require('./routes/login/delete_publication'));

app.use(require('./routes/login/add_team'));
app.use(require('./routes/login/view_team'));
app.use(require('./routes/login/edit_team'));
//app.use(require('./routes/login/delete_team'));

//listen to requests from client
var server = app.listen(app.get('port'), function(){
    console.log('server started on '+ app.get('port'));
});

(router)add_team.js:

router.post('/add_team', upload.single('profileImage') ,function(req, res, next) {
  var name = req.body.name;
  var title = req.body.title;
  var description = req.body.description;
  var created = new Date();
  var isActive = true;

  if(req.file) {
    console.log('Uploading File...');
    var profileImage = req.file.filename;
    console.log(profileImage);
  } 
  else {
    console.log('No File Uploaded...');
    var profileImage = 'noimage.jpg';
  }

  // Form Validator
  req.checkBody('name','Name field is required').notEmpty();
  req.checkBody('title','Title field is required').notEmpty();
  req.checkBody('description','Description is not valid').notEmpty();
  //req.checkBody('profileImage','Please upload an image Jpeg, Png or Gif').isImage(profileImage);

  // Check Errors
  var errors = req.validationErrors();
  console.log(errors);

  if(errors) {
    res.render('login/team/add_team', { errors: errors, title: 'IDID Lab | AdminArea', classname: 'active', page_name: 'view_team' });
  } else {
    const client = new Client({
      connectionString: connectionString,
    });
    client.connect();
    const query = 'INSERT INTO team(team_name, team_title, team_description, team_image, createdby) VALUES($1, $2, $3, $4, $5) RETURNING *'
    const values = [name, title, description, profileImage, created]
    client.query(query, values, (err, result) => {
      if(err) { 
        console.log(err.stack)
      } else {
        req.flash('success', 'Record Added');
        //console.log(message);
        res.location('login/team/view_team');
        res.redirect('login/team/view_team');
      }
      client.end();
  });

The following error I am getting: Cannot GET /login/team/view_team

Any idea how to solve this issue?

Sombrero

You have to redirect on an url not the path of the view. Here is the documentation.

res.redirect(URL);
res.redirect('/teams'); // will show all the teams

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Django Redirect after Successful Login

From Dev

Allow redirect after successful login

From Dev

Change button name after successful insertion

From Dev

Error on insertion of data after successful opening of connection

From Dev

How to redirect user after successful login?

From Dev

Paypal - Auto redirect after successful payment?

From Dev

django admin redirect after a successful login

From Dev

Devise: Redirect to Admin Path After Successful Login

From Dev

Angular 2 - Redirect after successful login not working

From Dev

How to redirect user after successful login?

From Dev

Redirect to home as a logged in user after successful registration

From Dev

Redirect to Login page after successful reset password

From Dev

Socialite redirect the user after successful facebook registeration

From Dev

Passport does not redirect after successful auth

From Dev

Ember - Record ID not returned (null) after successful insertion to the backend

From Dev

Redirect to home page after successful login using AJAX

From Dev

Spring Boot Security redirect after successful login - undefined

From Dev

How to redirect after successful Async call with react-router?

From Dev

Spring Boot redirect to current page after successful login

From Dev

SSO - SAML, Redirect a user to a specified landing page after successful log in

From Dev

Spring Boot Security redirect after successful login - undefined

From Dev

Unable to redirect to application page even after successful authentication in CAS server

From Dev

Most appropriate way to redirect page after successful POST request in Django

From Dev

CodeIgniter won't redirect after successful form validation

From Dev

How to redirect to other page after successful login in angularjs?

From Dev

How to redirect to previous page after successful register in Laravel?

From Dev

Redirect after successful async action with react router v3

From Dev

Redirect user back to original site after successful contact form PHP and get successful message

From Dev

SQLAlchemy: successful insertion but then raises an exception

Related Related

  1. 1

    Django Redirect after Successful Login

  2. 2

    Allow redirect after successful login

  3. 3

    Change button name after successful insertion

  4. 4

    Error on insertion of data after successful opening of connection

  5. 5

    How to redirect user after successful login?

  6. 6

    Paypal - Auto redirect after successful payment?

  7. 7

    django admin redirect after a successful login

  8. 8

    Devise: Redirect to Admin Path After Successful Login

  9. 9

    Angular 2 - Redirect after successful login not working

  10. 10

    How to redirect user after successful login?

  11. 11

    Redirect to home as a logged in user after successful registration

  12. 12

    Redirect to Login page after successful reset password

  13. 13

    Socialite redirect the user after successful facebook registeration

  14. 14

    Passport does not redirect after successful auth

  15. 15

    Ember - Record ID not returned (null) after successful insertion to the backend

  16. 16

    Redirect to home page after successful login using AJAX

  17. 17

    Spring Boot Security redirect after successful login - undefined

  18. 18

    How to redirect after successful Async call with react-router?

  19. 19

    Spring Boot redirect to current page after successful login

  20. 20

    SSO - SAML, Redirect a user to a specified landing page after successful log in

  21. 21

    Spring Boot Security redirect after successful login - undefined

  22. 22

    Unable to redirect to application page even after successful authentication in CAS server

  23. 23

    Most appropriate way to redirect page after successful POST request in Django

  24. 24

    CodeIgniter won't redirect after successful form validation

  25. 25

    How to redirect to other page after successful login in angularjs?

  26. 26

    How to redirect to previous page after successful register in Laravel?

  27. 27

    Redirect after successful async action with react router v3

  28. 28

    Redirect user back to original site after successful contact form PHP and get successful message

  29. 29

    SQLAlchemy: successful insertion but then raises an exception

HotTag

Archive