使用Jade在express中更改视图

时间:2016-02-13 20:57:36

标签: javascript node.js express pug

我对节点场景很陌生,我正在使用express和jade,我设法让一个简单的1页应用程序工作。目前,登录页面作为默认页面。一旦用户通过数据库进行身份验证,就会调用函数loginUser()。

我想做的是在输入此功能后改变我的观点,我尝试了几种但到目前为止没有运气。

以下是我的初始视图在服务器1st启动时的呈现方式

var express = require("express");
var app = express();
var port = 3700;

app.set('views', __dirname + '/tpl');
app.set('view engine', "jade");

app.engine('jade', require('jade').__express);

// Page 1
app.get("/", function (req, res) {
    res.render("page");
});

// Page 2 (Once logged in)
app.get('/newpage', function (req, res) {
    res.render('mainpage', {
        title: 'Home'
    });
});

app.get("/", function (req, res) {
    res.send("It works!");
});
app.use(express.static(__dirname + '/public'));

有关如何在我的index.js中调用某个函数后如何显示第二个视图“/ newpage”的任何信息将不胜感激

谢谢!

1 个答案:

答案 0 :(得分:0)

您的app.get('/newpage', function (req, res)函数告诉Express,当有yourwebsite.com/newpage的GET HTTP请求时,它会呈现标题为mainpage的{​​{1}}。到目前为止,这看起来是正确的。

要回答您的问题,如果登录信息正确(我猜测Home是否成功),您只需要将客户端登录按钮设为此/newpage的链接即可。否则,请返回主页loginUser()或以页面或同一主页显示'/'

您可以在Express服务器中处理此逻辑,作为PUT或POST请求,使用your password was incorrectapp.post()发送登录信息。您还可以在GET(app.put())请求标题中添加某种形式的身份验证,以确保客户端确实是他们所说的人。如果您打印出部分响应或请求快递中的对象,您可以查看响应和请求的详细信息。 Express非常简洁,您可以在某个请求进入某个路径时添加功能,例如,计算您获得的请求数量,或用于调试目的。