【问题标题】:Changing view in express using Jade使用 Jade 在 Express 中更改视图
【发布时间】:2016-02-13 20:57:35
【问题描述】:

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

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

这是第一个服务器启动时我的初始视图的呈现方式

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”的信息将不胜感激

谢谢!

【问题讨论】:

    标签: javascript node.js express pug


    【解决方案1】:

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

    要回答您的问题,如果登录信息正确,您只需将客户端登录按钮设置为指向此/newpage 的链接(我猜loginUser() 是否成功)。否则,要么返回主页'/',要么将your password was incorrect显示为一个页面,或者在同一个主页上。

    您可以在您的 Express 服务器中处理此逻辑,作为 PUT 或 POST 请求,使用app.post()app.put() 在他们的登录信息中发送。您还可以在 GET (app.get()) 请求的标头中添加某种形式的身份验证,以确保客户端确实是他们所说的身份。如果您以 express 打印出部分响应或请求对象,则可以查看响应和请求的详细信息。 Express 的简洁之处在于,您还可以在某个请求到达某个路由时添加函数,例如计算您收到的请求数,或用于调试目的。

    【讨论】:

    • 我已经删除了最后一条评论我知道现在该怎么做,登录后我在页面上调用 GET 请求,我希望允许登录用户查看,然后我发送一个 socket.emit 消息对客户“真实”,收到后我可以更新视图。谢谢你的帮助! :D
    猜你喜欢
    • 2014-08-28
    • 2012-02-26
    • 2012-04-29
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多