Tag: ejs

如何更改node.js中的ejs模板以避免这种情况

我在node.js中使用了ejs模板,并且遇到了路由问题,例如 我有两个html文件,home.html和list.html,都加载一个list.ejs文件,以显示相同的内容 – 用户列表。 home.html的 <div class="container-fluid content"> <% include users/list %> </div> list.html <div class="container-fluid content"> <% include course/list %> </div> list.ejs <article> <h2><a href="user/<%= user._id %>" ></a><%= user.title %></h2> <p> <a href="user/<%= user._id %>" >@waynespiegel</a><%= user.description %> </p> </article> 然而,问题在于home.html和list.html在不同的url中,home.html的url是“/”,而home.html的url是“user / recent” 。 所以如果我在home.html页面中点击“> <%= user.title%>,它会正确跳转到正确的页面/ user /'userid' ,但是当涉及到list.html时,链接变成/ user / user /'userid' […]

页面呈现数据后res.redirect不工作

我有一个简单的忘记密码的function,当用户请求更改密码时,他会收到带有令牌的电子邮件,并点击它的电子邮件,他将被redirect到一个将使用新密码的页面。 我所做的是当我点击电子邮件中的一个链接时,服务器获取请求,一个函数将数据从链接中提取出来(使用res.render),然后redirect到渲染的页面。 我面临的问题是当我点击链接时,我正在获取数据和页面呈现,但我不能让res.redirect()工作。 我的链接看起来像这样 http://localhost:3000/api/resetpassword?_csrf=ab8aa6a41567f817330e3e0a214725f8b2f88b487d5bef16f162e033c6a63dc41933511ddb79cb44ca049f472b3e0c593dbbaf&email=dummyEmail%2540dumyurl.ca 然后我使用app.get()获取服务器上的请求。 app.get('/api/resetpassword', Admin.resetPasswordPage); 我的渲染和redirectfunction看起来像这样; resetPasswordPage: function (req, res, next) { req.query.email = decodeURIComponent(req.query.email) ; res.render('resetPassword', { Email: req.query.email, Csrf : req.query._csrf, }, function (err, html) { console.log("TESTING HTML ", html); if (!err) res.redirect("/resetPassword"); }); } 由于我在HTML参数中获取了完整的HTML页面,所以渲染成功,但问题是如何redirect到该页面。 该页面是在EJS和它的视图文件夹。

如何在EJSfilter中获取请求对象?

我想在我的EJSfilter中获取请求对象。 可能吗? 我的filter非常简单,但我需要看到哪个区域被触发(通过urlpath)来提供正确的资产。 我相信我可以从请求中获取url,但是如何获取它? 我开始编写中间件函数,它将在函数范围中设置有趣的值,但是它不起作用,因为在ejsfilter被触发之前,值可以被其他请求改变。 我知道我可以用域来处理它,但我还不熟悉它们,甚至我的节点版本也不支持它。 是否有一个简单的方法来获取eqsfilter中的req对象?

在Express / ejs中添加视图

基本问题时间: 我是node.js / express / ejs的新手。 如何添加一个新的ejs powered页面到我的服务器? 例如:我想在我的服务器上有一个新的页面,显示为mysite.com/foo.html,我希望它通过app.router&ejs呈现。 如何添加此页面并开始编辑? 我已经从index.js *的例子开始,这个例子是默认的express –ejs install。 但是深入研究这个代码,“find ./ -name”index。* js *“'会产生不less于25个不同的文件,这些文件可能涉及到产生这个双行索引页面。 开始我的正确道路?

Expressjs路由问题

我想在我的网页上有一个链接发送用户到正确的博客post,但我似乎无法弄清楚如何在我的视图文件中使用我的路线。 每当我点击链接时,我都会得到这个错误: { "message": "Cast to ObjectId failed for value \":blogpost_id\" at path \"_id\"", "name": "CastError", "type": "ObjectId", "value": ":blogpost_id", "path": "_id" } 这是如何设置我的GET方法的结果,或者我如何试图在我的视图内使用它? url是localhost:8080/:blogpost_id ,这是不正确的。 “更多”链接是我正在谈论的。 routes.js var express = require('express'); var router = express.Router(); var blogDB = require('../config/blogDB.js'); var Blogpost = require('./models/blogModel.js'); var paginate = require('express-paginate'); //index router.use(paginate.middleware(10, 50)); router.route('/') // START POST […]

呈现EJS并将其保存到Redis

在我的Node-Express应用程序中,我使用Postgre作为主数据,Redis作为caching系统。 当访问者请求一个url时,我的应用程序请求json到Redis。 如果不可用,请向Postgre发送请求,将json保存到Redis,然后渲染EJS模板。 下一个请求到相同的url,我从Redis获取JSON并呈现模板。 现在我想保存到Redis的完整呈现模板,而不是json来节省CPU使用率。 我试过这个技巧,但是没有成功: 在node.js中渲染ejs文件 任何想法或build议如何做到这一点? 在此先感谢您的帮助。

sails.js:只有当ejs模板没有testing它们的存在时才可以看到variables

我对整个nodejs生态系统很陌生,所以善言慢语,用小词。 在过去用PHP开发一个网站时,我通常会有header.php和footer.php包含。 头文件通常包含HTML头元素,所以要定义标题和元标签的默认值,在header.php中,我通常使用如下逻辑: if (title is not defined) { use some default title; } 这使我能够了解我没有为某些单独页面设置标题或元描述标记的情况,并使用一些默认的全局值。 我正在尝试在sails.js中做同样的事情,而且我得到了一些奇怪的结果。 在某些看法(例如“test.ejs”)我有: <% var pg_title = 'test'; %> <%- include header.ejs %> 然后在头上我有: <% console.log(pg_title); %> 这工作。 (即它回声“testing”) 但是,如果header.ejs包含了是否已经定义了pg_title的任何一种testing,那么在test.ejs中设置的pg_title的值总是被忽略(它回声“未定义”)。 目前,header.ejs包含下面的代码,但我已经尝试了几个不同的东西。 if (typeof pg_title == 'undefined') { var pg_title = __('pg_title_default'); } 上述条件将始终评估为真。 如果我删除header.ejs中的“var”,如下面的Ravi所示,我得到一个“pg_title is not defined”的错误。 我究竟做错了什么?

有没有办法创build一个由服务器处理产生的dynamic部分?

我已经开始使用NodeJS几个月了,我遇到了部分渲染的一个小问题。 我想在一些模板中包含部分视图,但是我希望这个部分是从服务器dynamic生成的(因为它取决于从数据库和其他东西中获取的数据)。 我试图创build一个模板助手做到这一点,但由于处理需要asynchronous完成,我不能得到一个HTML返回写在我的模板。 基本上最适合我的是类似的东西(这段代码显然不起作用): template_file.js … <div> <%- generatePartial(data) %> </div> … helper_middleware.js module.exports = function registerAppHelpers(request, response, next) { var appHelpers = {}; appHelpers.generatePartial = function generatePartial(data) { if (request.isAuthenticated()) { DB.findOne({ id: request.user.id }, function found(error, obj) { if (error) … if (obj) { return generatePartial1(data); } else { return generatePartial2(data); } }); […]

获取EJS模板中的项目ID并注入服务

我想弄清楚如何传递一个Id到我的PlayerDetailController ,然后在我的服务中使用它。 我在我的主app.js有以下路线: var players = require('./routes/players'); app.use('/players', players); 我在players路线( routes/players.js )中有以下路线: var express = require('express'); var router = express.Router(); /* GET /players listing. */ router.get('/', function(req, res, next) { res.render('players', { title: 'Players', action: 'list'}); }); /* GET /player details. */ router.get('/:id', function(req, res, next) { res.render('players', { title: 'Player Details', action: 'details'}); }); […]

sails.js视图不加载

我做了一个控制器,从其他api获取数据,并将其序列化为.xls文件。 在我的networking视图中,我有一个button“Create xls data”,它调用我的控制器。 然后,我的控制器将通过xls下载链接和“下载数据”button来对这个视图进行筛选和重新加载。 我的意见import_export_data_page.ejs: 显示开始button“创buildxls数据”。 <% if(typeof link == 'undefined'){ %> <button type="button" class="btn btn-primary" id="button_get_xls_file">Create xls data</button> <% }else { %> <a href="<%= link %>"><button type="button" class="btn btn-primary"></button></a> <% } %> <script type="text/javascript"> $('#button_get_xls_file').click(function(){ var projectName = getCurrentServiceName(currentService); $.get( "/api/export_xls_data", { url : currentService, projectname : projectName} ).done(function( data ) { }); […]