Tag: ejs

无法在EJS中引用对象

我有一个对象,我正在传递到我的模板使用EJS和我继续得到一个错误说Cannot read property 'link' of undefined ,这里是对象,这里是模板代码。 我console.log对象,并得到这个: { _id: 583e4b76f1c8771c17d68ef2, username: 'asdf', __v: 0, favoriteMoments: [], favoriteEvents: [], likes: [], friends: [], moments: [], categories: [], events: [ { _id: 583e4bf8cc11c61c2887aa38, title: 'asdfasdf', description: 'asdf', __v: 0, comments: [], photos: [Object], moments: [], category: [Object], owner: [Object] } ] } 这是模板: <div class="well event_list_page_event_boxes […]

Node.js – 将多个对象传递给相同的EJS文件

我有多个MySQL查询结果,我呈现第一个,并使其余的一个可调用作为对象的单个EJS文件(/数据)。 我仅渲染第一个查询结果( obj ),然后让剩下的可调 用到 EJS( rsum_total_sales & rsum_count_active ) 看来,我第一次加载EJS文件,我得到了前500错误 rsum_total_sales is not defined 但是当我重新加载浏览器时,我得到EJS加载正常,显示从路由文件得到所有需要的结果。 奇怪的事情,即使是第一次,在console.log()我看到,所有三个查询结果已被放在我做的对象,但他们不能被调用的EJS除了第一个直接渲染它。 从EJS错误,我可以看到,它传递的第一个connection.query结果(obj),而不是其余两个(rsum_total_sales&sum_count_active),我只是让他们的对象可调用,直到我重新加载浏览器。 路线文件 var obj = {}; var qsum_total_sales = 'SELECT SUM (total_price) AS s_total_price FROM myrecords'; var qsum_count_active = 'SELECT COUNT (*) AS s_count_active FROM myrecords WHERE NOT status = "canceled" '; var qdata = 'SELECT * FROM […]

节点快递服务器不提供图片文件夹

当我在生产服务器上运行我的捆绑React应用程序时,它找不到我的图像文件,我不知道为什么。 我相当确定这是有关我的节点快递configuration和/或我的.ejs模板文件。 server.js var express = require('express') var app = express(); const path = require('path'); app.use('/static', express.static(__dirname + '/static')); app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.get('*', function (req, res) { res.render("index"); }); const port = process.env.PORT || 3000; const env = process.env.NODE_ENV || 'production'; app.listen(port, err => { if (err) { return console.error(err); } […]

我无法用node.js读取JSON文件

您好,我得到了Node.js中的以下代码 fs.readFile(file, function(err, obj) { obj.data1.forEach(function(element) { console.log (element.key, element.key1); }); }) 我试图以下面的json格式显示所有的关键和价值: { "data1": { "key": "iohiohio", "key1": "jhuihuj" }, "data2": { "key4": "hoih", "key5": "kjhi" } } 所以我想要的结果是这样的: key1:jhuihuj,key4:hoih 并显示在html / ejs文件中。

EJS包括包装

我可以包括另一个.ejs文件,将包裹当前的内容? 我想有一个像这样的总体布局:layout.js: <!DOCTYPE html> <html> <head> </head> <body> <div id="header"></div> <div id="content"> <!– I want to "inject" my code here –> </div> </body> </html> 我想从另一个文件中使用这个模板,比如:content.ejs <% inside(layout) ? { %> <a href="">content</a> <% } %> 我可以做这样的事吗? 我目前正在做另一种方式,我用一个参数include_name调用布局,但这有点不方便。 我想调用包含通用内容本身的相关content.ejs 。 这可能吗? 谢谢,

为什么把svg标签渲染到一个ejs文件不能识别

我尝试使用d3-node在服务器端创build图表,并尝试使用以下代码将新图表呈现为ejs:<%= svgChart%>当我使用浏览器查看它时,它只显示如下的svg标记内容: <svg xmlns="http://www.w3.org/2000/svg" width="960" height="400"><defs> <style type="text/css"><![CDATA[ .axis{font: 10px sans-serif;} .axis path,.axis line{fill: none;stroke: #000;shape-rendering: crispEdges;} .x.axis path{display: none;} ]]></style></defs><g transform="translate(40,20)"><path d="M20,32.4L20.430000000000003,32.4L20.86,32.4L21.290000000000003,32.4L21.720000000000002,32.4L22.150000000000002,32.4L22.580000000000002,32.4L23.01,32.4L23.44,32.4L23.87,32.4L24.299999999999997,32.4L24.73,32.4L25.16,32.4L25.590000000000003,32.4L26.02,32.4L26.450000000000003,32.4L26.88,32.4L27.310000000000002,32.4L27.740000000000002,32.4L28.17,32.4L28.6,32.4L29.03,32.4L29.46,32.4L29.89,32.4L30.32,32.4L30.75,32.4L31.18,32.4L31.61,32.4L32.04,32.4L32.47,32.4L32.9,32.4L33.33,32.4L33.76,32.4L34.190000000000005,32.4L34.620000000000005,32.4L35.050000000000004,32.4L35.480000000000004,32.4L35.910000000000004,32.4L36.34,32.4L36.77,32.4L37.2,32.4L37.63,32.4L38.06,32.4L38.489999999999995,32.4L38.92,32.4L39.35,32.4L39.78,32.4L40.21,32.4L40.64,32.4L41…………………………. 没有显示图表本身。 svgChart包含svg标签的string。 如果我将svgChart内容(string)直接复制到ejs,它将完美地显示图表。 看起来ejs在加载页面时不能显示标签的内容。它认为svgChart是一个普通的string。 我的问题是:如何使ejs将svgChart识别为svg标签,使其能够显示标签文本的svg图表insead?

在Node – Express中,在POST操作后更改EJS中的元素样式

我有一个表单页面,应该在用户填写表单并点击提交button后显示成功提醒(Boostrap)。 <form class="well form-horizontal" action="/contact" method="post" id="contact_form"> … (input fields here) <div class="alert alert-success" role="alert" id="success_message"> Success <i class="glyphicon glyphicon-thumbs-up" ></i> Thanks for contacting us, we will get back to you shortly. </div> <div class="form-group"> <label class="col-md-3 control-label"></label> <div class="col-md-6"> <button type="submit" class="btn btn-warning" > Submit <span class="glyphicon glyphicon-send"></span></button> </div> </div> 默认情况下,在我的CSS: #success_message { display: […]

在Mocha中使用EJStesting渲染视图

我已完成20个testing通过构build一个CRUD应用程序。 我正在使用EJS来渲染视图,现在我的testing有问题。 作为一个简单的例子,假设我正在检查是否发送了一个GET请求发送给'/' ,JSON将被发送像res.json({message:'hello'})所以我可以设置我的testing在摩卡这样res.body.message相当于'你好'。 但是,如果我想呈现index.ejs页面而不是发送JSON。 所以它看起来像res.render('index',{message:'hello'}) 。 我如何testingres.render() ? 或者更具体地说,我如何testing传递给res.render()的对象? 编辑:解决这个问题(和这种问题)可以通过使用称为functiontesting的testing范例解决。 去谷歌上查询。

每个Node.js EJS expressvalidation器

好吧。 我绝对想要用ejs来完成这个任务。 车把。 没问题。 但是迫使学习ejs。 我想要做的是获取一个错误对象,并通过对象循环,并打印出每个消息作为一个李。 <% if (errors !== undefined){ %> <p>there are errors on page</p> <% for each(error in errors){ %> <li><%= error.msg%></li> <% }) %> <% } %> 我已经尝试了许多不同的方法来获取数据显示,但我似乎无法find我的挂断或我应该如何得到每个对象的味精。 上面的代码只是代码的一小部分。 整个代码 编辑:从post中删除的信息,因为它不再涉及到我的问题。

从ejs视图获取JSON数据到控制器

这是我的server.js, const express = require("express"); var app = express(); var cons = require('consolidate'); const bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.engine('html', cons.ejs); app.set('view engine', 'html'); app.get("/getAllData", function(req, res) { GPSDataSchemaModel.find({}, function(err, result) { if (err) throw err; if (result) { res.render("index.ejs", { dbData: result }); } else { res.send(JSON.stringify({ error: 'Error' }) )} […]