2016-04-27 88 views
0

我正在用express和mongodb進行用戶登錄Web應用程序。我的項目結構是這樣的,如何渲染(重定向)子文件?

project 
    |-app.js 
    |-models (contain mongoose model) 
    |-controllers 
    |  | - user.controller.js 
    |- views 
    | | - layout.jade 
    | | - index.jade 
    | | - signup.jade 

我的app.js只是用於偵聽服務器,依賴關係和路由。 在app.js簡單的代碼,

//app.js 
app.get('/', function(req,res){ 
    res.render('index'); 
}); 
app.post('/signup', function(req,res){ 
    res.render('signup'); 
}); 
app.post('/', controller.register); 

,這是我user.controller.js文件,

//user.controller.js 
exports.register = function(req,res){ 
    var newUser = new User(); 

    newUser.username = req.body.username; 
    newUser.email = req.body.email; 
    newUser.password = req.body.password; 

    newUser.save(function(err, user){ 
    if(err){ 
     console.log(err.message); 
     console.log(err.errors.username.message); 
     res.send('error registering user'); 
    } else{ 
     console.log(user); 
     res.redirect('/signup'); 
    } 
    }); 
}; 

signup.jade和index.jade是layout.jade文件的孩子。 layout.jade有導航欄和其他簡單的東西。 Index.jade具有實際的形式,用戶可以鍵入他們的用戶ID,密碼和密碼確認。我試圖做的是,用戶點擊index.jade中的按鈕後,用戶將重定向signup頁面並查看​​。

index.jade和signup.jade開始,

extend layout 

block content 
    div 
    ... 

我覺得我的代碼將工作,如果他們是獨立的玉石文件,有人在這裏Express, Jade, & NodeJS: Navigate between pages解釋。但我沒有這樣的運氣。任何人都可以幫忙嗎? 謝謝!

回答

0

我覺得我有點想通了這一個

//user.controller.js 
exports.register = function(req,res){ 
    var newUser = new User(); 

    newUser.username = req.body.username; 
    newUser.email = req.body.email; 
    newUser.password = req.body.password; 

    newUser.save(function(err, user){ 
    if(err){ 
     console.log(err.message); 
     console.log(err.errors.username.message); 
     res.send('error registering user'); 
    } else{ 
     console.log(user); 
     res.redirect('/signup'); 
    } 
    }); 

在這個文件中,我選擇了res.redirect('/signup');。我把這個改成了res.render('signup')' };