标签: ejs

如何将 EJS 模板引擎与 NestJS 一起使用?

我想在 NestJS 中使用 EJS 作为模板引擎。使用 Express,我可以在主文件中配置 EJS,如下所示:

app.set("view engine", "ejs");
Run Code Online (Sandbox Code Playgroud)

我怎样才能最好地用 NestJS 实现这个?Nestjs 不附带.set方法。

javascript ejs node.js typescript nestjs

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

如何在NodeJS中创建动态下拉菜单?

我正在试验节点Js.如何创建动态下拉菜单?谢谢.

ejs node.js

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

如何在静态Javascript中嵌入EJS代码?

我正在使用Nodejs和ExpressJS.

我有一个HTML页面,其中有一个Javascript文件被引用.

<script type="text/javascript" src="../javascripts/game.js"></script>
Run Code Online (Sandbox Code Playgroud)

我没有将所有Javascript嵌入HTML页面本身,因为它太大了.

现在我需要我的Javascript(game.js)来访问控制器传递的一些变量.我想做这样的事情 -

var max_players = parseInt("<%= table.total_players %>");
console.log("<%= table.name %>")
Run Code Online (Sandbox Code Playgroud)

我在渲染页面时传递表变量.

 exports.index = function(req,res){

//code
res.render('mytable', {table: table });

    };
Run Code Online (Sandbox Code Playgroud)

但这显然不起作用,因为JS文件被呈现为静态文件.如果我需要让Javascript可以访问这些变量,我该怎么办?

我在某处读到这可以通过将Game.js重命名为Game.ejs来实现.但是我在哪里放置Game.js文件(以便正确和动态地呈现它?)

如果还有其他方法可以达到这个目的,请告诉我.

javascript dynamic ejs node.js express

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

如何配置Sails.js以使用EJS视图助手?

我是Sails.js的新手,我正在尝试使用EJS的视图助手(目前主要用于link_to).我已经看到它没有开箱即用的引用,但我还没有看到任何关于如何配置Sails.js以使用视图助手的noob-friendy描述.目前,我已经生成了一个完全简单的应用程序,sails new <name>而不是其他.

谢谢!

ejs sails.js

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

EJS和Node,EJS如果传入的对象不存在则抛出错误?

我试图使用ejs将消息对象传递给模板.我的路线代码如下:

app.get('/', function(req, res) {
    res.render('index.ejs', {message: 'A message'});
});
Run Code Online (Sandbox Code Playgroud)

在我的ejs(index.ejs)文件中,我有:

    <% if (message) { %>
        <div class="alert alert-danger"><%= message %></div>
    <% } %>
Run Code Online (Sandbox Code Playgroud)

但是当我根本不传递一个对象(不仅仅是message: "")时,它返回以下错误:

ReferenceError: /Users/Documents/node/views/index.ejs:13
    11| <body>
    12|     <div class="container">
 >> 13|         <% if (message) { %>
    14|             <div class="alert alert-danger"><%= message %></div>
    15|         <% } %>
    16|         <div class="jumbotron text-center">

message is not defined
Run Code Online (Sandbox Code Playgroud)

同样,如果我尝试,if(message.length > 0)但只是给了我同样的错误.我认为if声明的重点是if message不存在,它只是跳过.如果没有传递消息对象,我怎么能只让ejs渲染,或者message每次都必须传递一个空的obect?

ejs node.js express embedded-javascript

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

heroku配置变量可以是布尔值,并且ejs可以访问吗?

我可以设置process.env.productiontrue或将其转换为"true"

即必须在Heroku中配置vars总是字符串,或者它们可以是布尔值吗?

另外:如果if/elseindex.ejs执行的条件process.env.production被设置为true,是否会在渲染之前进行评估?

heroku ejs node.js

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

如何使用node.js,express和ejs在字符串中传递html标签

我使用带有Express和EJS的Node.js,我希望将字符串中的html标签传递给浏览器,如下所示:

listRequests.forEach(function(key) {
    messages.push("You have a message from <b>" + key.username + "</b>");
});
Run Code Online (Sandbox Code Playgroud)

稍后在我的代码中:

res.render('/wallets', {
              messages     : messages,
              ...
           });
Run Code Online (Sandbox Code Playgroud)

在我的html模板中,我有类似的东西

<h2>Messages</h2>
<% messages.forEach(function(message) { %>
<p><%= message %></p>
<% }); %>
Run Code Online (Sandbox Code Playgroud)

问题是:浏览器显示带有标签的文本,<b>John</b>而不是John

javascript ejs node.js express

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

返回回调函数Node.js的数据

我正在使用带有Node.js的500px API模块,我正在尝试获取特定用户的照片.我面临功能,回调和范围的问题......我有这段代码:


    api500px.photos.getByUsername ('username', {'sort': 'created_at', 'image_size': '3'}, function(error, results) {
        if (error) {
            console.log(error);
            return;
        }
        var dataPx = results.photos;
    });

我想把我的变量拿出来dataPx并在我的ejs模板中使用它:


    app.get('/materialize', function(req, res) {
        res.render('materialize.ejs', {dataPx: dataPx});
    });

如果有人能解释我如何做到这一点以及这种事情在JavaScript中是如何工作的那就太酷了!

谢谢

javascript callback ejs node.js express

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

NodeJS Express定义自定义路由

这可能是一个我不理解的基本概念,但在我的NodeJS应用程序中,我试图定义一个自定义路由.

我的目录结构如下

/application
    /app.js
    /package.json
    /node_modules
    /public
    /routes
        /control
            /users.js
    /views
        /control
            /users.ejs
Run Code Online (Sandbox Code Playgroud)

我很满意,因为我希望将路线和观点保持在1比1的关系中,因为我最终会得到像这样的东西

/application
    /app.js
    /package.json
    /node_modules
    /public
    /routes
        /control
            /users.js
            /system.js
        /tools
            /stock.js
            /report.js
    /views
        /control
            /users.ejs
            /system.ejs
        /tools
            /stock.ejs
            /report.ejs
Run Code Online (Sandbox Code Playgroud)

所以我不希望最终得到一个带有大量路由代码的/routes/index.js文件.

它似乎工作,而我的app.js文件如下

//==============================================================================
// setup
//==============================================================================

var express = require("express");
var path = require("path");

var app = express();
var port = 3000;
var message = null;

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

app.use(express.static(path.join(__dirname, "public")));

//==============================================================================
// routes
//==============================================================================

var users = require("./routes/control/users");
app.get("/", users.users);

//==============================================================================
// start server
//==============================================================================

app.listen(port, …
Run Code Online (Sandbox Code Playgroud)

javascript ejs node.js express

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

使用NODE.JS和EJS更新HTML页面的一部分

我有以下快递应用程序,它只是呈现sample.ejs页面.在该页面上,当我按下按钮时,附加的脚本将div文本更改为"这是来自J QUERY.我希望同样的事情发生但我希望数据来自数据库.在我的快递应用程序中,如果我尝试使用res.render();每次我点击按钮然后重新加载我不想要的页面.那么有没有办法实现这一点而不重新加载页面只更新页面的一部分?我搜索了堆栈溢出和网络,但无法得到一个合适的答案,或者我可能无法理解.我知道这是一个非常基本的问题.

APP.js

var express = require('express');
var app = express();
app.use(express.static('public'));
app.use(express.static('./src/views'));
app.set('views', './src/views');
app.set('view engine' , 'ejs');

app.listen(3000 , (err)=>{console.log('Listening')});

app.get('/' , function(req , res) {
    res.render('sample' , {result_from_database: res.body} );   
});
Run Code Online (Sandbox Code Playgroud)

sample.ejs

<!doctype html>
<html lang="en">
<head>
    <title>Sample HTML File</title>
</head>

<body>
    <div id="holder">
        WELCOME
    </div>
    <form>
        <button type="button" id="HButton"> HELLO </button>
    </form>
</body>

<script>
    $(document).ready(function () {
        var form = $("#holder");

        $("#HButton").on("click", function () {
            form.html("THIS IS FROM J QUERY");
        });
    }); …
Run Code Online (Sandbox Code Playgroud)

html javascript ejs node.js

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