Tag: ejs

用EJS在asynchronousfs.readFile的callback中呈现HTML模板?

我很容易用fs.readFileSync完成这个工作,但是我想这样做是asynchronous的。 我的代码如下。 function send(err, str){ if(err){ console.log(err); } var template = ejs.render(str, 'utf8', {name: data.name}); transporter.sendMail({ from: myEmail, to: anotherEmail, subject: mySubject, html: template, attachments: images }, function(err, response) { if(err){ console.log(err); } }); } fs.readFile('emailTemplate.ejs', send); 所以我为fs.readFile做了我自己的callback,这样当文件被读取后,它将呈现电子邮件,把正确的名称放入然后用nodemailer发送出去。 但是,它不喜欢这个。 如果没有问题,它会得到错误,但是当渲染模板时呈现下列错误。 TypeError:Object(跟在模板的整个HTML之后)在导出时在Object.exports.parse(/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:144:21)处没有方法“indexOf”。编译(/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:229:15)在Object.exports.render(/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:289:10 )在fs.readFile(fs.js:272:14)上发送(/home/ubuntu/workspace/routes/email.js:171:28)在Object.oncomplete(fs.js:108:15) 这样做虽然同步工作正常。 var str = fs.readFileSync('emailTemplate.ejs', 'utf8'); var template = ejs.render(str, { name: data.name […]

NodeJs,Expressjs与EJS到Android doens't工作在PhoneGap?

我有一个nodejs + expressjs应用程序需要被转换为一个android。 我们正在考虑的一个快速解决scheme是使用phonegap。 我坚持的问题是所有我在Web应用程序的视图文件夹下的文件是ejs文件。 当我尝试上传我的应用程序到phonegap它说没有index.htmlfind我的.zip文件夹。 我的问题是:1.我应该从节点应用程序分离前端文件? 使用html和纯js? 2.有没有一种方法可以将ejs文件渲染到html文件(类似于导入),以便将现有的Web应用程序转换为Android应用程序? 3. phonegap中有一个选项可以使用ejs文件而不是html文件吗? 我正在使用https://build.phonegap.com/来转换应用程序。 有人请帮助,因为我长期坚持这一点。

Express错误 – TypeError:express.Router不是一个函数

我正在通过使用Express,EJS和Node的新波士顿学习本教程。 我的代码几乎完全像他的设置,除了最后使用app.listen而不是module.exports =发送。 当我尝试运行我的节点程序时出现以下错误: var router = express.Router(); ^ TypeError: express.Router is not a function 这是我的app.js: var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); // view engine […]

如何在ejs中发布表单标签动作值?

有没有人知道? 我正在testing一些JavaScript如下 function mem_join_next() { if (document.mem_join.email.value == "") { alert("please input your email ID"); document.mem_join.email.focus(); return; } document.mem_join.submit(); } <form name="mem_join" action="/join_step_3" method="post"> <div class="col-xs-12 id"> <p><span>EMAIL</span><span class="star">*</span> </p> <input name='email' class="email1" type="text" style="IME-MODE: disabled" size="11">@ <input class="email2" type="text"> <div class="email-check">email_check</div> </div> <div class="col-xs-6 next" align="right"> <a onClick="mem_join_next()" style="cursor:pointer"> <img src="/page_imgs/member_img/btn-next.jpg"> </a> </div> 这是代码,我想运行。 […]

为React模板化引擎?

我正在构build我的第一个React应用程序,对于如何在Express中初始页面加载时传递数据,我有点困惑。 我通常使用EJS partials并通过res.render()传递数据对象。 有没有一种解决scheme,使我可以轻松地将值放入页面加载的React道具,类似于EJS的方式? 如果是这样,哪个是最好的select? 到目前为止,我刚刚从componentDidMount()发送了一个AJAX,这是我很好(我假设不理想,但它的工作),但我现在正在build立一个“文章”页面与一个variables的URL ID,我需要传入数据库查询,以便我可以接收关联的数据。

导入javascripts文件以包含ejs文件

我是EJS新手,我需要将javascript文件导入到包含的ejs文件中。 以前我用jquery如下。 $("#topnav").load("topnav", function () { $.when( $.getScript( "javascripts/jquery.min.js" ), $.getScript( "javascripts/custom.js" ), $.Deferred(function( deferred ){ $( deferred.resolve ); })); }); 现在我需要与ejs执行相同的function。 在我的index.ejs文件中,我包含了topnav.ejs <%- include topnav.ejs%> 我怎么能与ejs?

无法在客户端上呈现EJS模板

我正在快速编写应用程序,我使用ejs作为视图/模板引擎。 在path/artists ,我正在呈现艺术家涵盖的视图artists.ejs 。 当点击一个封面,我想要一个AJAX调用来检索相应的数据,把它放在我的艺术家artist.ejs模板/视图中,并在封面下的HTML中显示这个模板。 我已经看到这个相关的问题,但它并没有解决我的用例。 一切似乎清晰,但我不能用模板呈现数据。 我想编译模板服务器端,将其发送到客户端准备使用,然后在需要的时候用来自AJAX调用的数据填充它。 我做了什么: 当调用/artists ,使用ejs.compile(str, opt)在服务器端进行编译: router.get('/artists', function(req, res) { // Compile artist template fs.readFile('views/artist.ejs', "utf-8", function(err, template) { // Convert template file to string artist_template = ejs.compile(template); // Compile template res.render('artists.ejs', {template: artist_template}); // render page with compiled template }); 我负责将文件转换为string,因为ejs编译器只能使用String(与Jade .compileFile相比) 然后在客户端,我抓取这个函数: <script> var template = <%= […]

在EJS中使用console.log

是否有可能在节点/ ejs模板中使用console.log? 当我尝试时,似乎没有做任何事情,甚至是如此简单的事情: <% console.log('test') %> 我也试过: <%= console.log('test') %> 控制台中没有任何显示。

根据密钥名称更新JSON文件值

我得到了一个以下的ejs表单片段:这个表单显示了json文件中的数据。 <form method="post" action="/save" id="form_Update"> <div class="modal-body"> <table width="900px;" height="80px;"> <% for(var i=0; i < myKeyList.length; i++) { %> <tr> <td style="width: 200px"><b><%= myKeyList[i] %> :: </b></td> <td style="height: 10px" ></td> <td> <b><input type="text" name="<%=myKeyList[i]%>" id="jsonValue" class="form-control" value="<%= mykeyValues[i]%>" style="width: 400px"></b> </td> </tr> <% } %> </table> </div> <div class="modal-footer"> <button type="submit" class="btn btn-primary" id="btnSubmit">Save</button> […]

包括在ejs中的Ajax

当我尝试添加包括在我的ejs文件中工作正常。 HTML report.ejs <tbody> <%- include('include/playersTable'); %> </tbody> 使用Javascript $.get('/reports.ejs', function (template) { // Compile the EJS template. reportTemplate = ejs.compile(template); }); 但是,当我用ajax调用它包含使用相对path需要'文件名'选项。 而当我尝试与客户端网站 使用Javascript $.get('/reports.ejs', function (template) { // Compile the EJS template. reportTemplate = ejs.compile(template, {client: true}); }); 它说 include不是eval的函数(eval在编译(ejs.js:525),:103:17)