繁体   English   中英

在 Express.js 中设置新路由的问题

[英]Issue Setting new routes in Express.js

我正在使用 express.js 创建一个应用程序,并且有两个可以导航到的 ejs 页面,但希望能够导航到更多 ejs(我使用 pug)pug,因此我的应用程序可以是动态的,我想要更多我的链接和 hrefs 才能使用这些路由。

This page works and uses ejs <pug):
// LOGIN PAGE
app.post('/', ifLoggedin, [
    body('user_email').custom((value) => {
        return dbConnection.execute('SELECT `email` FROM `users` WHERE `email`=?', [value])
            .then(([rows]) => {
                if (rows.length == 1) {
                    return true;
                }
                return Promise.reject('Invalid Email Address!');
            });
    }),
    body('user_pass', 'Password is empty!').trim().not().isEmpty(),
], (req, res) => {
    const validation_result = validationResult(req);
    const { user_pass, user_email } = req.body;
    if (validation_result.isEmpty()) {

        dbConnection.execute("SELECT * FROM `users` WHERE `email`=?", [user_email])
            .then(([rows]) => {
                bcrypt.compare(user_pass, rows[0].password).then(compare_result => {
                    if (compare_result === true) {
                        req.session.isLoggedIn = true;
                        req.session.userID = rows[0].id;

                        res.redirect('/');
                    }
                    else {
                        res.render('login-register', {
                            login_errors: ['Invalid Password!']
                        });
                    }
                })
                    .catch(err => {
                        if (err) throw err;
                    });


            }).catch(err => {
                if (err) throw err;
            });
    }
    else {
        let allErrors = validation_result.errors.map((error) => {
            return error.msg;
        });
        // REDERING login-register PAGE WITH LOGIN VALIDATION ERRORS
        res.render('login-register', {
            login_errors: allErrors
        });
    }
});
// END OF LOGIN PAGE

我试图创建一条到这里的路线,但它不起作用,页面返回 404:这是代码中断

// Testing >>>

app.get('/test', (req, res) => {

    //  render testicles
    res.sendFile('test.ejs');
});


// Testing ^^^

您需要直接将绝对路径与res.sendFile一起使用。

res.sendFile(path.join(__dirname, './view', 'test.ejs'))

或者

res.sendFile('test.ejs', { root: path.join(__dirname, './views') });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM