Я новичок в nodejs.Я использую экспресс и ejs.Несколько часов назад я увидел, что при установке express-ejs-layout можно использовать макет в моем проекте, и это сработало, но теперь, когда я пытался улучшить свой код, он внезапно прекратил свою работу.
, когда яувидев, что это не работает, я решил вернуться к рабочему этапу, кода было немного.
app.js
var express = require('express');
var expressLayouts = require('express-ejs-layouts');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var cors = require('cors');
var routes = require('./routes/index');
var app = express();
//
app.set('views', path.join(__dirname, '/views'));
app.set('view engine', 'ejs');
//
app.use(logger('dev'));
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, '/public')));
app.use(expressLayouts);
app.use('/', routes);
index.js:
// Get Home
router.get('/', function(req, res, next) {
res.render('index', { user : req.cookies.UserData, token_id : req.cookies.token_id});
console.log(cookies);
});
// POST логин, здесь я проверяю пользователя и создаю токен и userdata для теста
router.post('/user/login',function(req,res,next){
////---here all code, it's a lot----///
res.cookie('token_id', token);
res.cookie('UserData', locals );
res.redirect('/')
});
// GET layout логин false
router.get('/user/login', function(req, res, next) {
res.clearCookie('token_id');
res.clearCookie('UserData');
res.render('login',{layout : false});
});
При переходе на локальный хост: 3000 / user / login, я получил ошибку «макет не определен».Но я использовал переменные макета, которые раньше работали без проблем.
при удалении <% variable%> из макета, "/ user / login" работает без проблем и не использует макет. *Образец переменной 1021 *
_Head.ejs
<title><%= user.title %></title>
затем создайте куки, чтобы увидеть, как они работают, и получается, что с запущенными куки и переменными макета, установленными снова, он продолжает говорить мне, что«пользовательская переменная не определена», и этот код был не тем, который я изменил, а тем, что я улучшал, был Toaster, который я исключил
Я всегда использую nodemon.