问题描述
问题:
我很困惑为什么我的render
不能从css
加载images
和uploads
。
当我不要尝试登录时,每个页面都会加载images
,而css
会应用其样式。
但是当我尝试这样渲染我的页面时:
if(!results.length){
res.status(401).render('home/login',{
message: 'The email or password is incorrect'
});
}
我收到此错误:
我意识到它说...:3000/auth/css/..
-不是要加载auth
吗?
这是我的树
Index.js
|
├───controllers
├───helpers
│
├───public
│ ├───css
│ ├───javascript
│ └───uploads
├───routes
│ └───home
└───views
├───home
├───layouts
└───partials
└───home
index.js
const express = require('express');
const path = require('path');
const exphbs = require('express-handlebars');
const bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
const app = express();
// Public path
app.use(express.static(path.join(__dirname,'./public')));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
//Parse URL encoded bodies
app.use(express.urlencoded({ extended: false }));
//Parse JSON bodies as sent by API clients
app.use(express.json());
app.use(cookieParser());
// View engine
app.engine('handlebars',exphbs({defaultLayout: 'home-index'}));
app.set('view engine','handlebars');
// Routing
app.use('/',require('./routes/home/page_routes'));
app.use('/auth',require('./routes/auth'));
app.listen(3000,() => {
console.log('Listening');
});
视图/布局/home-index.handlebars
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="css/home.css">
<title></title>
</head>
<body>
{{> home/home-nav}}
{{{body}}}
</body>
</html>
routes / auth.js
const { db } = require('./db');
var jwt = require('jsonwebtoken');
var bcrypt = require('bcryptjs');
var { promisify } = require('util');
// Login
exports.login = async function(req,res) {
try {
var {email,password} = req.body;
if(!email || !password) {
return res.status(400).render('home/login',{
message: 'Please provide an email and password' ///////////////// This is the problem
});
}
db.query('select * from users_website where email = ?',[email],async function(error,results){
console.log(results)
if(!results.length){
res.status(401).render('home/login',{
message: 'The email or password is incorrect' ///////////////// This is the problem
});
}
else{
var id = results[0].id;
var token = jwt.sign({ id },'SuperSecretPassword9981998',{
expiresIn: '90d'
});
console.log("The token is: " + token);
var cookieOptions = {
expires: new Date(
Date.now() + 90 * 24 * 60 * 60 * 1000
),httpOnly: true
}
res.cookie('jwt',token,cookieOptions);
res.status(200).redirect("/");
}
});
} catch (e) {
console.log(e);
}
}
路线/家庭/ page_routes
const express = require('express');
const router = express.Router();
const auth_controller = require('../../controllers/auth');
// Home router
router.get('/',auth_controller.isLoggedIn,(req,res) => {
res.render('home/index');
});
// Login
router.get('/login',res) => {
res.render('home/login');
});
module.exports = router;
问题
如何消除错误-尝试呈现页面时?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)