【问题标题】:show alert on response.render, in EJS template, if statement not working in EJS在 EJS 模板中的 response.render 上显示警报,如果语句在 EJS 中不起作用
【发布时间】:2019-11-12 13:50:53
【问题描述】:

我有一个注册端口请求,完成后它会呈现一个带有口头 signupRequest: 'success' 的 EJS 模板。

但是当我去 localhost:8888/ 然后它给了我这个错误

错误:

    ReferenceError: /Users/oliver_christensen/Documents/codeFiles/nodejs-app-1/views/index.ejs:36
    34| </style>
    35| <body>
 >> 36|     <% if (signupRequest) { %> 
    37|        <script>alert('You have been signed up successfully!');</script> 
    38|     <% } %>
    39|     

signupRequest is not defined

当我一直在 signup.html 上并发送 post 请求时。然后它工作并 index.ejs 渲染。

它只是当你去 localhost:8888/ 没有注册后请求时,它给了我错误......


我是不是做错了什么,或者,谢谢你的帮助:)


我的代码:

server.set('view engine', 'ejs');

server.use(bodyParser.urlencoded({
    extended: true
}));

server.get('/', (req, res) => {
    res.render('index');
});

server.post('/signup', (req, res) => {
    // at the end of signup requset function
    res.render('index', {signupRequest: 'success'});
}

【问题讨论】:

    标签: node.js express ejs


    【解决方案1】:

    我认为这是因为对于 POST 和 GET 方法,您引用了相同的模板。问题是当你去 GET localhost:8888/ 你没有传递第二个参数{signupRequest: false}。设置为false 以不触发警报。

    server.get('/', (req, res) => {
        res.render('index', {signupRequest: false});
    });
    

    【讨论】:

    • 但我不明白为什么我的代码不起作用。在 ejs.co,ejs 网站上。在网站上有一个 if 语句的例子。 &lt;% if (user) { %&gt; &lt;h2&gt;&lt;%= user.name %&gt;&lt;/h2&gt; &lt;% } %&gt; 发送这个 if 语句只是检查用户是否存在?
    猜你喜欢
    • 2020-01-14
    • 2019-07-30
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多