ejs 相关问题

“E”代表“有效”。 EJS是一种简单的模板语言,可让您使用纯JavaScript生成HTML标记。没有关于如何组织事物的宗教信仰。没有重新发明迭代和控制流。它只是简单的JavaScript。

图像未加载到 ejs 文件中

当在 /blog 上发出请求时,图像会加载到 EJS 文件中渲染到 blog.ejs, 但是当在 /blog/comment/add/:blogId 上发出请求时,viewComment.ejs 文件会加载,但图像不会加载。 我...

回答 1 投票 0

如何在nodejsexpress应用程序的ejs模板中动态设置活动选项卡?

这是我的标题模板,它将加载到每个页面。 这是我的标题模板,它将加载到每个页面。 <!-- ======= Header ======= --> <header id="header" class="d-flex align-items-center"> <div class="container d-flex align-items-center justify-content-between"> <h1 class="logo"><a href="index.html"><%= title %><span>.</span></a></h1> <!-- Uncomment below if you prefer to use an image logo --> <!-- <a href="index.html" class="logo"><img src="/assets/img/logo.png" alt=""></a>--> <nav id="navbar" class="navbar"> <ul> <% const menu = [ { name: 'Home', url: '/' }, { name: 'About', url: '/about' }, { name: 'Services', url: '/services' }, { name: 'Portfolio', url: '/portfolio' }, { name: 'Team', url: '/team' }, { name: 'RatesCalculator', url: '/ratesCalculator' }, { name: 'Contact', url: '/contact' } ] for ( let i in menu ) { %> <% if ( menu[i].name.toLowerCase() == activestate.toLowerCase() ) { %> <li><a class="nav-link scrollto active" href="<%= menu[i].url %>" ><%= menu[i].name %></a></li> <% } else { %> <li><a class="nav-link scrollto" href="<%= menu[i].url %>" ><%= menu[i].name %></a></li> <% } %> <% } %> </ul> <i class="bi bi-list mobile-nav-toggle"></i> </nav><!-- .navbar --> </div> </header><!-- End Header --> 要动态设置它,活动选项卡,我在模板中使用下面的逻辑,在index.js 中使用中间件。 app.use(function(req, res, next){ console.log(req) res.locals.title = "Marker";//To set website title req.active = req.path.split('/')[1] // [0] will be empty since routes start with '/' if (req.length === 0) req.active = "Home" next(); }); 它正在工作,但我觉得它有点复杂并且有重复的代码。 您能提出更好的方法吗? 我找到了一个解决方案,使用全局中间件函数将修改后的、隔离的 requestUrl 附加到 EJS 文件中,可以通过三元运算符在 EJS 文件中进行检查。希望这对您有帮助! 快递文件: app.use((req, res, next) => { const fileExtensionPattern = /\.[0-9a-z]+$/i; const requestUrl = req.url.split('?')[0]; // Ignore query parameters if (!fileExtensionPattern.test(requestUrl) && req.method === 'GET') { res.locals.requestUrl = requestUrl.substring(1); } next(); }); 添加到EJS部分: <% function isActive(tabName) { return activeTab === tabName ? '!bg-pink !text-black' : ''; } %> <!-- Used for toggling active states of tabs, function used in style class --> 使用示例: <a href="#" class="flex items-center p-2 bg-dark hover:bg-pink group rounded-lg text-white hover:text-black <%- isActive('songs') %>"> <img src="/svg/icons/headphones.svg" alt="Songs Icon"> <span class="flex-1 ms-3 whitespace-nowrap">Songs</span> </a>

回答 1 投票 0

无法将index.ejs文件推送到git hub

我尝试使用“git add”。添加并提交文件,但未添加文件夹“views”。 [该文件夹包含index.ejs、header.ejs和footer.ejs文件。] 我尝试在

回答 1 投票 0

标题标签中的图像未显示在我的 EJS 模板中

我正在创建一个包含表单的代码,但标题中的图像没有显示/弹出,这是我目前的代码 const express = require('express'); const bodyParser = require('body-

回答 1 投票 0

.ejs 中的标头不起作用,解决方案是什么

我正在创建一个包含表单的代码,但标题中的图像没有显示/弹出,这是我目前的代码 const express = require('express'); const bodyParser = require('body-

回答 1 投票 0

有没有办法对多个变量发出POST请求?

我正在创建一个博客网站作为 Capstone 项目,当我单击提交按钮时,我试图让这个表单打印 3 个不同的变量,但是当我测试代码时,它所做的只是使 .. .

回答 1 投票 0

在 ejs 中渲染 RESTful 注释时出错

使用 ejs 并渲染包含用户名和评论的评论文件时,它仅渲染用户名,而评论根本不渲染 评论索引 常量注释 = [ { ...

回答 1 投票 0

register.ejs“loggedIn”上的引用错误未定义,但它在index.js文件中定义

index.js 文件已loggedIn 呈现为ejs 文件的变量,但它一直告诉我它未定义: ... index.js 文件已loggedIn 呈现为ejs 文件的变量,但它一直告诉我它未定义: <ul class="flex items-center p-1 grow justify-end"> <li class="text-white duration-150 hover:bg-[#2e3e58] dark:hover:dark:bg-[#202124] py-1 px-2 mx-1 rounded-md"> <% if (loggedIn) { %> <a href="/users/logout">Logout</a> <% } else { %> <a href="/users/login">Login or Sign Up</a> <% } %> </li> <li> <img class="sunDisabled cursor-pointer justify-center" src="../images/brightness-high.svg" alt="BrightModeDisabled" /> </li> <li> <img class="sunEnabled cursor-pointer justify-center" src="../images/brightness-high-fill.svg" alt="BrightModeEnabled" /> </li> </ul> 这是index.js 文件: // Imports const path = require("path"); const express = require("express"); const session = require("express-session"); const flash = require("express-flash"); const bcrypt = require("bcrypt"); const passport = require("passport"); require("dotenv").config({ path: "../.env" }); const { pool } = require("../config/dbConfig"); const initializePassport = require("../config/passportConfig"); const { bibleQuery } = require("./bibleQuery"); const { fathersQuery } = require("./fathersQuery"); const { register } = require("./register"); const app = express(); const PORT = process.env.PORT || 4000; initializePassport(passport); // Middleware app.set("view engine", "ejs"); app.use(express.urlencoded({ extended: false })); app.use(express.static(path.join(__dirname, "../public"))); app.use( session({ secret: process.env.SESSION_SECRET, resave: false, saveUninitialized: false, }) ); app.use(passport.initialize()); app.use(passport.session()); app.use(flash()); app.get("/", (req, res) => { if (req.isAuthenticated()) { res.render("../public/views/index", { loggedIn: req.isAuthenticated(), user: req.isAuthenticated() ? req.user.name : null, }); } else { res.render("../public/views/index", { loggedIn: false }); } }); app.get("/users/register", checkAuthenticated, (req, res) => { res.render("../public/views/register", { loggedIn: req.isAuthenticated() }); }); app.get("/users/login", checkAuthenticated, (req, res) => { res.render("../public/views/login", { loggedIn: req.isAuthenticated() }); }); bibleQuery(app, pool); fathersQuery(app, pool); register(app, pool); app.get("/users/logout", (req, res, next) => { req.logout((err) => { if (err) { return next(err); } }); req.flash("success_msg", "You have logged out"); res.redirect("/"); }); app.post( "/users/login", passport.authenticate("local", { successRedirect: "/", failureRedirect: "/users/login", failureFlash: true, }) ); /** * @param {{ isAuthenticated: () => any; }} req * @param {{ redirect: (arg0: string) => any; }} res * @param {() => void} next */ function checkAuthenticated(req, res, next) { if (req.isAuthenticated()) { return res.redirect("/"); } next(); } app.listen(PORT, () => { console.log(`Listening on port ${PORT}`); }); 尝试重新启动我的服务器,更新 npm 软件包,尝试重新排列代码 50 次,但仍然没有任何效果。 index.js 文件还指出 bcrypt 已声明但从未读取,但这对我来说过去不是问题,我没有接触过这段代码,直到今天它都工作正常。 在register.js 文件中,未声明{loggedIn:loggedIn} 变量。问题已解决

回答 1 投票 0

如何使用express.js使目录和子目录立即静态

我有一个视图文件夹,我使用 app.use(express.static('views') 将其设为静态 视图文件夹包含子目录如下 - 意见 |-主页/ | |-homepage.ejs | |-homepage.css | |-

回答 1 投票 0

如何在JS中从res.body中检索ReadableStream数据

我正在使用 fetch 函数从后端获取数据,它返回一个 ReadStream 作为响应的主体。如何提取该可读流中的数据? 我尝试过使用 res.json 方法,但是......

回答 1 投票 0

如何让按钮将表单值提交到服务器而不刷新页面?

我制作了一个 html 按钮,当我更改选择标签的值时会触发该按钮。我只是想发送信息到服务器并检索相应的数据,并在同一个页面上使用它...

回答 1 投票 0

addEventListener“单击”或任何其他事件在 ejs 文件中不起作用

我在ejs文件中有一个选择标签, \html 选择脚本: 我在 ejs 文件中有一个选择标签, \\html <label for="script">Choose a script:</label> <select name="script" id="script"> <option value="main">Main</option> <option value="main2">Main2</option> </select> 我想要一个函数在选择标签的值发生更改后立即执行,我尝试了“onchange”事件,但它不起作用,所以我尝试了“onclick”,但后来我意识到事件侦听器没有响应无论如何,无论事件类型是什么,这里都是 js 文件中的代码 - \\JS document.getElementById('script').addEventListener('onchange', ()=>{ console.log("registered") }) 但是,如果我使用“click”而不是“onclick”,使用“change”而不是“onchange”,一切都会正常。那么使用“on”前缀有什么区别吗? 活动名称不以on开头,只是change或click。 当您使用 HTML 中的内联属性创建侦听器时,在开头添加 on,例如 <select name="script" id="script" onchange="console.log('registered')"> <option value="main">Main</option> <option value="main2">Main2</option> </select> 或者当您将其分配为属性时: document.getElementById("script").onchange = function() { console.log('registered'); }; <select name="script" id="script"> <option value="main">Main</option> <option value="main2">Main2</option> </select>

回答 0 投票 0

ejs 文件可以与 github 页面一起使用吗?

我只想发布包含 ejs 文件的网站。我在使用 github 页面之前没有发布任何网站,那么我应该如何处理 ejs 文件?因为据我了解 github 页面确实...

回答 1 投票 0

Puppeteer TimeoutError:等待 30000ms 后超时

我试图通过 Express JS、puppeteer 和 ejs 实现非常简单的 pdf 生成。 我曾多次使用以下代码并取得了类似的结果。 const 路由器 = 请求...

回答 1 投票 0

jest.config.js 无法从 .ejs 文件转换

我的 jest.config.js 中出现配置错误 这是我的 jest.config.json “严格使用” /** @type {import('jest').Config} */ 常量配置= { 详细:真实, 模块名称映射...

回答 1 投票 0

读取index.ejs时无法获取/错误

我尝试构建一个简单的 ejs 应用程序,但返回错误 const express = require('express') 常量应用程序 = Express(); app.get('/demo',(req,res)=>{ app.render('index.ejs'); }); 应用程序.听...

回答 1 投票 0

用户注册他已通过身份验证,但无法访问秘密页面,因此它始终将我重定向到登录页面

我实际上不知道问题出在哪里,但我认为问题出在秘密路由或注册路由中。 我希望如果用户注册,cookie 会与会话 ID 一起保存,并且您...

回答 1 投票 0

Ejs 不渲染 css 文件

我正在使用 Nodejs 开发 CRUD 应用程序,但在从项目目录渲染外部 css 和 bootstrap5 时遇到问题。当我尝试使用 post Id 传递 get 时,仅呈现 html 块。它

回答 2 投票 0

为什么请求正文未定义?

我正在使用 Express.js 构建一个简单的博客应用程序,当我尝试将其登录到控制台时,我遇到了 POST 请求正文未定义的问题: console.log(req.body) // 未定义 这...

回答 1 投票 0

在布局中使用占位符时编辑hexo静态网站问题

之后出现在生成的html中意味着hexo无法处理它,对吗? 我尝试在前面的 Markdown 文件夹中选择我需要的横幅,所以我编辑主题/布局/部分/标题,但是......

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.