标签: ejs

渲染静态html时出错

这段代码:

var app = require('express').createServer();
var ejs = require('ejs');
var fs = require('fs');
var indexTemplate = fs.readFileSync(__dirname + '/templates/index.html');

app.get('/', function(req, res){
    res.end(ejs.render(indexTemplate, {}));
});
Run Code Online (Sandbox Code Playgroud)

给我以下错误

TypeError:Object Address在/home/lowerkey/node_modules/ejs/lib/ejs.js的Object.parse(/home/lowerkey/node_modules/ejs/lib/ejs.js:152:20)上没有方法'substr': 192:13 at Object.render(/home/lowerkey/node_modules/ejs/lib/ejs.js:235:10)at/home/lowerkey/workspace/address book/server/server.js:60:14 at callbacks( /home/lowerkey/node_modules/express/lib/router/index.js:272:11)在param(/home/lowerkey/node_modules/express/lib/router/index.js:246:11)传递(/ home) /lowerkey/node_modules/express/lib/router/index.js:253:5)在Object.handle的Router._dispatch(/home/lowerkey/node_modules/express/lib/router/index.js:280:4) /home/lowerkey/node_modules/express/lib/router/index.js:45:10)下一步(/home/lowerkey/node_modules/express/node_modules/connect/lib/http.js:203:15)

我究竟做错了什么?

ejs node.js express

3
推荐指数
1
解决办法
1087
查看次数

如何通过从ejs传递数组值到Javascript?

我通过JavaScript传递ejs数组.我可以使用ejs中的值,但不能使用JavaScript.以下是更多信息.

的node.js

FileTypes = {"application/octet-stream":20,
                 "audio/mpeg":12,
                 "text/html" :71}
res.render('index.ejs', {FileTypes: JSON.stringify(FileTypes)});
Run Code Online (Sandbox Code Playgroud)

index.ejs

 <script type="text/javascript">

   var FileTypes =  <%=FileTypes%>;
   //Error message on the console - Uncaught SyntaxError: Unexpected token & 

 </script>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

javascript ejs node.js

3
推荐指数
1
解决办法
3689
查看次数

我应该如何使用ejs垂直渲染表格?

我有一个如下数组:

quotation: [{
              "dimension" : 0,
              "currency": "RMB",
              "quantity": "100",
              "price": "3",
              "factory": "rx"},
            {
              "dimension" : 0,
              "currency": "RMB",
              "quantity": "200",
              "price": "4",
              "factory": "rx"},
           {
              "dimension" : 1,
              "currency": "RMB",
              "quantity": "100",
              "price": "3",
              "factory": "rx"},
           {
              "dimension" : 1,
              "currency": "RMB",
              "quantity": "200",
              "price": "5",
              "factory": "rx"},
            {
              "dimension" : 0,
              "currency": "RMB",
              "quantity": "100",
              "price": "1.2",
              "factory": "hsf"},
            {
              "dimension" : 0,
              "currency": "RMB",
              "quantity": "200",
              "price": "2.4",
              "factory": "hsf"},
           {
              "dimension" : 1,
              "currency": "RMB", …
Run Code Online (Sandbox Code Playgroud)

javascript ejs embedded-javascript

3
推荐指数
1
解决办法
8028
查看次数

EJS:将变量传递到包含的文件

我将EJS用作前端开发堆栈的一部分。例如我正常的index.ejs看起来像这样:

<%- include parts/header.ejs %>

  <%- include parts/navigation.ejs %>
    
    <!-- HTML content: divs, spans, etc. -->
  
<%- include parts/footer.ejs %>
Run Code Online (Sandbox Code Playgroud)

我想要的是以某种方式通过include <%-include parts / footer.ejs传递变量吗?variable = value%>,并希望在包含的文件中读取它,以有条件地显示/隐藏内容的某些部分。

我找不到办法。EJS有可能吗?

ejs

3
推荐指数
1
解决办法
2114
查看次数

无法在ejs中设置undefined属性'round'

我正在从"secrete of ninja"一书中学习nodejs.我有一个ejs程序,我从书中复制,但它显示以下错误,而我没有在程序中进行任何更改.

这是一个错误:

ejs.filters.round = function(number, decimalPlaces) {
               ^ 
 Cannot set property 'round' of undefined
Run Code Online (Sandbox Code Playgroud)

我有这个代码:

 var ejs = require('ejs');
 var template = '<%=: price * 1.145 | round:2 %>';
 var context = {price: 21};


ejs.filters.round = function(number, decimalPlaces) {

number = isNaN(number) ? 0 : number;
decimalPlaces = !decimalPlaces ? 0 : decimalPlaces;

var multiple = Math.pow(10, decimalPlaces);
return Math.round(number * multiple) / multiple;
};

console.log(ejs.render(template, context));
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我在哪里错了?

javascript ejs node.js

3
推荐指数
1
解决办法
958
查看次数

从ejs模板生成静态HTML文件

好的,所以我已经启动并运行了我的基本nodejs网站.它全部工作并通过节点服务器运行 - 使用我的基本节点站点

它使用ejs作为模板引擎.

我想将这些模板作为静态网站发布.所以所有都在本地生成,它将我的所有页面导出到静态HTML文件,我可以在我的基本托管平台上发布.无需服务器端技术.

我看过玉,但它要求我改变模板和结构.

是否有任何工具只是将我当前的设置发布到包含所有生成的html文件的文件夹?

谢谢你的帮助.非常感谢.

ejs node.js express

3
推荐指数
1
解决办法
3043
查看次数

如何为ejs中的每个模板设置不同的&lt;title&gt;值?

我正在使用Sails.js,它带有ejs-templates。有一个名为layout.ejs的默认视图,该视图始终包含其他模板的主体部分。title元素在layout.ejs中定义,因此始终相同。由于使用了SEO,我想根据所包含的视图来更改标题。是否有某种方法可以知道.ejs文件中从Sails实际调用了哪个视图?

ejs sails.js

3
推荐指数
1
解决办法
1368
查看次数

EJS包含在单独的ejs文件中定义的功能

我正在尝试包含一个ejs文件,该文件包含用于设置视图的功能。这些功能被定义为可以使用的助手。我试过使用:

<% include helpers.ejs %>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用此文件中的函数时:

<% module_start('$body', [{name:'display',value:'block'}], 'body'); %>
Run Code Online (Sandbox Code Playgroud)

我得到错误:

Reference Error: module_start is not defined
Run Code Online (Sandbox Code Playgroud)

当我将代码从“ helpers.ejs”复制到我的原始视图文件“ test.ejs”时,它可以正常工作。我经历了几个答案,但仍然感到困惑,在这种情况下我做错了什么。

感谢您的帮助。

ejs referenceerror

3
推荐指数
1
解决办法
1022
查看次数

VSCode EJS扩展,禁用HTML自动完成

所以,我最近开始使用VSCode中的EJS文件.无论如何,当我添加EJS扩展时,我丢失了EJS文件中的所有HTML emmet功能.但是没有EJS扩展,HTML工作正常,但我显然失去了JS语法高亮.这有什么工作吗?

在VSCode中使用EJS文件的最佳设置是什么?

任何帮助将不胜感激.

html ejs emmet visual-studio-code

3
推荐指数
1
解决办法
2338
查看次数

EJS-包含返回找不到包含文件“ header.ejs”

我尝试用这样的ejs渲染html

const ejs = require('ejs'),
      fs = require('fs'),
      str = fs.readFileSync(`${__dirname}/../mail_templates/test.ejs`, 'utf8');

console.log(ejs.render(str, {name: 'abc'});
Run Code Online (Sandbox Code Playgroud)

test.ejs

<%- include(`header.ejs`)%>
...
Run Code Online (Sandbox Code Playgroud)

但是得到了这个错误:

Error: ejs:1
>> 1| <%- include(`header.ejs`)%>

Could not find the include file "header.ejs"
...
Run Code Online (Sandbox Code Playgroud)

文件夹结构如下所示:

在此处输入图片说明

你能告诉我为什么吗?我也尝试过这些情况,但没有希望:

<% include header.ejs %>
<% include header %>
<%- include('header.ejs'); -%>
<%- include('../mail_templates/header.ejs'); -%>
<%- include('mail_templates/header.ejs'); -%>
<%- include('./mail_templates/header.ejs'); -%>
Run Code Online (Sandbox Code Playgroud)

唯一可行的情况是使用绝对路径:

<%- include("/Users/admin/Work/engine/mail_templates/header.ejs")%>
Run Code Online (Sandbox Code Playgroud)

但是我当然不想使用它。

ejs node.js express

3
推荐指数
1
解决办法
669
查看次数