标签: ejs

在node/express + ejs中将对象传递给客户端?

我有一个非常大的对象,我需要传递给客户端脚本中的函数.我尝试过使用JSON.stringify,但是这种方法遇到了一些问题 - 主要是与性能有关.是否有可能在ejs中做这样的事情?

app.get('/load', function(req, res) {
    var data = {
        layout:'interview/load',
        locals: {
            interview: '',
            data: someLargeObj
        }
    };
    res.render('load', data);
});
Run Code Online (Sandbox Code Playgroud)

在我的客户端脚本中,我会将此对象传递给类似的函数

<script type="text/javascript">
    load(<%- data %>); // load is a function in a client script
</script>
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我得到了

<script type="text/javascript">
    load();
</script>
Run Code Online (Sandbox Code Playgroud)

要么

<script type="text/javascript">
    load([Object object]);
</script>
Run Code Online (Sandbox Code Playgroud)

ejs node.js express

27
推荐指数
3
解决办法
5万
查看次数

Nodejs EJS辅助函数?

有没有办法将助手函数注册到EJS模板,以便可以从任何EJS模板调用它们?所以,它应该像这样工作.

app.js

ejs.helpers.sayHi = function(name) {
    return 'Hello ' + name;
});
Run Code Online (Sandbox Code Playgroud)

index.ejs

<%= sayHi('Bob') %>
Run Code Online (Sandbox Code Playgroud)

ejs node.js express

27
推荐指数
3
解决办法
2万
查看次数

ejs中的布局`yield`方法是什么?

我刚开始使用node.js + express + ejs.我找不到任何地方如何将请求的ejs文件拉入布局文件.

我完全知道这yield不是正确的事情.

例如

layout.ejs

<html>
<head><title>EJS Layout</title></head>
<body>
    <%= yield %>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

index.ejs

<p>Hi</p>
Run Code Online (Sandbox Code Playgroud)

ejs node.js express

24
推荐指数
2
解决办法
8163
查看次数

如何使用EJS模板引擎直接打印变量?

我正在使用Node.js和Express Web框架(以及EJS模板引擎).当我必须打印变量时,我会执行以下操作:

<% if (value) { %>

<%= value %>

<% } %>
Run Code Online (Sandbox Code Playgroud)

如果不打开其他括号,我可以做同样的事情吗?喜欢:

<% if (value) { PRINT VALUE } %>
Run Code Online (Sandbox Code Playgroud)

这可能吗?如何打印变量?

ejs node.js express

23
推荐指数
1
解决办法
2万
查看次数

将变量传递给EJS include

我在几个地方使用了一个全局标头,我试图在渲染模板时可以传递的变量中定义它的位置.

就像是:

var headerLocation = 'some/location/header.ejs'; 
res.render( viewDir + '/index', {
        header: headerLocation 
    } );
Run Code Online (Sandbox Code Playgroud)

并在模板文件中:

<% include header %>
Run Code Online (Sandbox Code Playgroud)

header是使用render传入的值.

这似乎不可能,但也许我错过了一些我想在这里问的东西.

编辑:

这在以下答案的评论中提到,但总结一下,现在可以在EJS的第2版中找到.

请参阅:https://github.com/mde/ejs#includes 以及相关讨论:https://github.com/tj/ejs/issues/93

ejs node.js

23
推荐指数
2
解决办法
2万
查看次数

在Express/EJS模板内部,循环数组的最简洁方法是什么?

我使用EJS模板设置了Express.js应用程序.我用经典的JS语法成功地循环了一个数组:

<% for (var i = 0; i < myArray.length; i++) { 
    this = myArray[i];
    // display properties of this
} %>
Run Code Online (Sandbox Code Playgroud)

但我想知道,有更清洁的方法吗?

具体来说,我可以使用Underscore或Lodash来循环使用.each吗?谢谢

partials ejs node.js express underscore.js

22
推荐指数
1
解决办法
2万
查看次数

ORM for Node JS如.net Entity Framework?

我是节点JS的新手,并尝试使用Node JS,Express JS,MS SQL,EJS实现CRUD.我已经完成了CRUD.

但我正在寻找一些更可靠的方法将数据或对象从节点传递给sql,反之亦然.

当我要插入记录时,我必须写一个INSERT SQL查询,即在任何表中创建条目.

那么,任何人都可以知道,有没有任何ORM可以帮助我处理SQL查询就像我们处理.net实体框架一样?

预先感谢.

sql-server entity-framework ejs node.js express

20
推荐指数
3
解决办法
2万
查看次数

为什么我需要在后端使用像Jade或EJS这样的模板引擎?

我熟悉Angularjs(1.x)并在指令中使用模板.

目前我正在学习nodejs,并且作为课程模板引擎的一部分被提及.在后端使用它们有什么好处?

目前我看不到任何用途.

template-engine ejs node.js pug

19
推荐指数
2
解决办法
5536
查看次数

我可以将EJS与AngularJS一起使用吗?

嗨,我是AngularJS的新手.我有很棒的网络应用程序已经运行JQuery和jQuery UI.

现在我想完全摆脱JQuery,并且由于其MVC(MVW)模式,我将迁移到Angularjs.

所以我的jQuery应用程序使用EJS运行模板和完全DOM操作.但是当我想到Angular js时,我有疑虑.我还能使用EJS吗?

所以请指导我是否可以使用.

另一个疑问是,我们假设我有列表页面.它是动态更新的,它将首先显示10条记录,然后根据用户滚动显示,接下来的10条记录将在AJAX之后附加到DOM中.我们可以使用Angular动态追加到DOM吗?

我如何在Angular中实现这些功能?

ejs angularjs

18
推荐指数
2
解决办法
3万
查看次数

无法使样式表与node.js的ejs一起使用

我正在尝试使用node,express和ejs为模板创建一个简单的服务器.我已经让服务器指向页面,加载它,甚至能够使用include语句生成其他代码.但由于某种原因,样式表将无法加载.

app.js

var express = require('express'),
app = express(),
http = require('http'),
server = http.createServer(app),
fs = require('fs');

var PORT = 8080; 

app.set('view engine', 'ejs');

app.get('/', function(req, res){
res.render('board.ejs', {
    title: "anything I want",
    taco: "hello world",
    something: "foo bar",
    layout: false
  });
});


app.listen(PORT);
console.log("Server working");
Run Code Online (Sandbox Code Playgroud)

ejs文件位于目录views/board.ejs中

<html>
 <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='../styles/style.css' />
 </head>
 <body >
    <h1> <%= taco %> </h1>
    <p> <%=  something %> </p>
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

和style.css位于相对于app.js的styles/style.css目录中

p {
  color:red;
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了每条路径,我可以设想链接的href包括相对于我的localhost相对于app.ejs相对于board.ejs的位置,甚至只是style.css,但似乎没有工作.任何建议都非常感谢.

stylesheet ejs node.js express

17
推荐指数
2
解决办法
3万
查看次数