2015-12-15 3 views
1

Я сделал форму. При успешном представлении формы я хотел перенаправить свою страницу на страницу благодарности (другой ejs). Так или иначе, если я использую res.redirect(), он не работает, но при использовании res.send («Спасибо») он работает нормально.Почему мой ejs не рендеринг при перенаправлении?

Ниже приведен код моих app.js:

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var mongoose = require('mongoose'); 
var routes = require('./routes/index'); 
var users = require('./routes/users'); 
var thankyou = require('./routes/thankyou'); 

var app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
var engine = require('ejs-locals'); 
app.engine('ejs', engine); 
app.set('view engine', 'ejs'); 

// uncomment after placing your favicon in /public 
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 

app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 

mongoose.connect('mongodb://localhost/my-data'); 

app.use('/', routes); 
app.use('/users', users); 
app.use('/thankyou', thankyou); 

var Schema = new mongoose.Schema({ 
    name  : String, 
    email  : String 
}); 

var user = mongoose.model('Users', Schema); 


app.post('/test',function(req,res){ 
    new user({ 
     email : req.body.email, 
     name : req.body.name 
    }).save(function(err, doc){ 
    if(err){ 
     console.log('boo'); 
    } 
    else{ 
     console.log('innner'); 
     res.redirect("/thankyou"); 
     res.end(); 

    } 
    }) 
}) 

Thankyou маршрут:

var express = require('express'); 
var router = express.Router(); 
router.get('/thankyou', function(req, res) { 
res.render('thankyou'); 
}); 

module.exports = router; 

Thankyou посмотреть

<h2>THANKS/h2> 

ответ

2

Это:

app.use('/thankyou', thankyou); 

... в сочетании с этим:

router.get('/thankyou', ...); 

... создает маршрут, который соответствует /thankyou/thankyou.

Вместо этого, вы, вероятно, хотите:

router.get('/', ...); 
+0

Привет, это не работает. –

+0

@NehaSharma заботиться о разработке? – robertklep

+0

мой плохой ... он работал ... спасибо :) –

Смежные вопросы