在 Express.js 中设置新路由问题
Issue Setting new routes in Express.js
我正在使用 express.js 创建一个应用程序并有两个可以导航到的 ejs 页面,但希望能够导航到更多的 ejs(我使用的是哈巴狗)哈巴狗,这样我的应用程序就可以是动态的并且我希望我的更多链接和 href 能够使用这些路由。
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
我曾尝试创建到此处的路由,但它不起作用,页面 returns 出现 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') });
我正在使用 express.js 创建一个应用程序并有两个可以导航到的 ejs 页面,但希望能够导航到更多的 ejs(我使用的是哈巴狗)哈巴狗,这样我的应用程序就可以是动态的并且我希望我的更多链接和 href 能够使用这些路由。
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
我曾尝试创建到此处的路由,但它不起作用,页面 returns 出现 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') });