标签: ejs

可以使用EJS快速将HTML呈现为变量(因此我可以作为电子邮件发送)吗?

我正在编写一个nodejs应用程序,它将使用emailjs发送html电子邮件.基本上我提供html作为我附加到消息的变量发送.

我不想使用大量的字符串连接来构建这个变量,而是使用express/ejs渲染视图并将内容保存到变量中.

所以不要这样做:

messageHtml = '<html>'+ ....
message.attach({data: messageHtml, alternative: true});
Run Code Online (Sandbox Code Playgroud)

我想做点什么:

messageHtml = render('emailTemplate.ejs', viewArgs);
message.attach({data: messageHtml, alternative: true});
Run Code Online (Sandbox Code Playgroud)

可以这样做,如果是这样,怎么办?!

email view ejs node.js express

7
推荐指数
1
解决办法
4584
查看次数

从EJS到JS中的JSON对象的JSON

我正在使用带有Node.JS的EJS,并将JSON对象传递给它,但需要将其作为页面中的可用对象进行访问.我从这里得到了意外的令牌o错误:

var initData=JSON.parse(<%-JSON.stringify(list)%>);
Run Code Online (Sandbox Code Playgroud)

我不知道这里有什么不对.

这是渲染时文件中的样子:

var initData=JSON.parse([{"title":"South Hills Health System - University Health Center","adr":"200 Lothrop St,15213","coords":"40.441875,-79.960813","images":[],"tags":[],"_id":"51c0e9798384f40000000017"},{"title":"Bombay Food Market","adr":"4605 Centre Avenue, Pittsburgh, PA 15213, USA","coords":null,"images":[],"tags":["indian","groceries","ethnic","store"],"_id":"51c0519e02b7cbec73000002"}]);
Run Code Online (Sandbox Code Playgroud)

javascript ejs mongodb node.js

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

如何在SailsJS应用程序中使用多个布局?

我Sails.js应用程序具有独立frontendadmin布局.我的视图引擎是ejs.

如何为前端和管理站点使用单独的布局?

我可以为每个动作使用特定布局吗?

layout ejs sails.js

7
推荐指数
1
解决办法
7029
查看次数

获取Angular控制器上的EJS数据

我正在尝试使用ejs将数据从我的节点服务器传递到我的角度控制器,以便在控制器加载时可以使用它(对Angular或UI路由器不感兴趣,你可以解析它).

节点服务器(使用express):

app.get('/', function(req, res) {
  res.render('index', {
    names: ["Daniel", "Sarah", "Peter"]
  });
});
Run Code Online (Sandbox Code Playgroud)

角度控制器:

.controller('NamesController', function ($scope) {
  var info = <%= names %>;
});
Run Code Online (Sandbox Code Playgroud)

这样做会给我以下错误: Uncaught SyntaxError: Unexpected token <

如果无法做到这一点,我很想听听有关如何在我的页面上预加载数据的建议.

ejs node.js angularjs

7
推荐指数
1
解决办法
2415
查看次数

当我JSON.stringify(对象)时,我得到一个疯狂的字符串作为值

当我从我的快速路径发送一个包含对象数组的对象到我的客户端时,我得到一个[Object对象],然后当我尝试对它进行字符串化时,我得到这个带有此控制台消息的疯狂字符串

var messages = "<%=(JSON.stringify(messages))%>"
console.log(messages) 
Run Code Online (Sandbox Code Playgroud)

将其打印到控制台......

{&#34;messages&#34;:[{&#34;content&#34;:&#34;cool mane&#34;,&#34;creator&#34;:&#34;joe&#34;},{&#34;content&#34;:&#34;test 4&#34;,&#34;creator&#34;:&#34;joe&#34;},{&#34;content&#34;:&#34; ewgdqf&#34;,&#34;creator&#34;:&#34;joe&#34;},
Run Code Online (Sandbox Code Playgroud)

它应该是一些东西,所以我可以通过做消息[0] .content迭代它,但我得到这个疯狂的字符串,不会让我做任何事情...

如果我尝试遍历它,它只会打印出每个字符.

javascript json ejs express

7
推荐指数
1
解决办法
3449
查看次数

渲染EJS模板会抛出错误this.templateText.replace不是函数

我正在尝试从文件中呈现EJS模板但我收到错误 this.templateText.replace is not a function

const http = require('http');
const fs = require('fs');
const ejs = require('ejs');

const server = http.createServer(function(req, res){
    fs.readFile('index.ejs', function(err, data) {
        if (err) {
            res.end("Error");
        }

        res.end(ejs.render(data, { title: "Hello" }));
    });
});

server.listen(4000);
Run Code Online (Sandbox Code Playgroud)

javascript ejs node.js

7
推荐指数
1
解决办法
2132
查看次数

将数据传递给ejs中的partials

我正在使用ejs-locals来支持express/node.js中的partials

问题是当您在部分内包含部分时,库存在错误.第二部分包括尝试查找相对于祖父母的文件或调用第一部分的page.ejs.

所以这要求我要么缩小我的./views,所以所有文件都只在./views(没有子目录)......或者我对从初始部分调用的目录中的部分进行符号链接.

也许还有另一种/更好的方法吗?

在我的很多观点中,我有一个脸部混搭,它给了我与人的化身的HTML.我不能只使用<% include faces %>和称它为一天,因为人们的集合来自许多不同的对象,具体取决于调用它的页面.

这是一个例子:

在项目页面上,我打电话<% include stats %>,调用面部分

<- partial('faces', { people: item.users }) %>
Run Code Online (Sandbox Code Playgroud)

或者在列表页面上,我打电话<% include stats %>,调用面部分

<- partial('faces' { people: list.users }) %>
Run Code Online (Sandbox Code Playgroud)

部分'faces.ejs'只是循环遍历人并吐出指向其个人资料的链接.但是因为我不能在部分内部包含部分内容,所以无论是在整个地方进行sym链接还是尝试不同的东西.

./views/list/index.ejs调用一个调用faces.ejs partial的stats.ejs partial ...所以我需要将./views/list/faces.ejs符号链接到./views/stats/faces.ejs上班.

您无法将数据传递给简单包含,因此我无法传入不同的用户集合,具体取决于调用它的上下文.

<% include faces %> 需要face.ejs循环遍历在faces.ejs中硬编码的item.users或list.users

我还能做些什么,可以使用嵌套的partials/includes?我已经向ejs-locals提交了一个bug,还有一些其他人也有这个bug,但它已经过了一个月没有任何修复.

ejs node.js express

6
推荐指数
0
解决办法
1791
查看次数

使用 Multer 上传文件时显示进度

我遇到了一些麻烦,我目前正在尝试自学一些 NodeJS,但我陷入了困境。我正在尝试使用 Multer 上传文件,我已经完全正常工作,但我想在同一页面上显示上传文件的进度。因此,我使用进度流来显示它,我可以在控制台中完全打印它,但现在的问题是在上传文件的页面上显示它。

所以最后一个问题是:如何使用从变量“p”获得的输出来显示 upload.ejs 中的进度?

这是我目前的代码

用户.js

router.get('/upload', ensureAuthenticated, function(req, res){
    res.render('authed/upload');
});


router.post('/upload-files', function(req, res){
    var p = progress();
    req.pipe(p);
    p.headers = req.headers;

    var sendStream = multer({ storage: storage }).any();

    p.on('progress', function(progress){
        console.log(progress);
    })
    console.log(req.files);

    sendStream(p, res, function(){
        console.log('file has been uploaded');
    });


    req.flash('success', 'File(s) have been uploaded!');

    res.location('/upload');
    res.redirect('/upload');

})
Run Code Online (Sandbox Code Playgroud)

上传.ejs

<% include ../partials/header %>
<% include ../partials/navbar %>

<div class="container">
    <div class="row">
        <div class="col-sm-12 file-upload-wrapper">
        <%- messages() %>
        <div class="w-100 text-center" style="padding-bottom: 2rem;">
            <h2 id="fileupload-text">File …
Run Code Online (Sandbox Code Playgroud)

ejs node.js express multer

6
推荐指数
0
解决办法
1676
查看次数

Href 行为 - 需要明确

我在我网站的个人资料页面上有这样的代码。

<div class="col-md-4">
    <h2 class="textclass2" style="text-decoration: underline; margin-bottom: 10px"><%=playerdata.Player_Name%>   AKA  <%=playerdata.Player_NickName%></h2>
    <a class="btn btn-dark btn-xs" href="<%=playerdata.Player_FBLink%>" id="fbclick" onClick="checkUrl()" style="font-size: 12px; color:#40FF40; margin-bottom: 10px "> Facebook </a>
    <a class="btn btn-dark btn-xs" href="<%=playerdata.Player_InstagramLink%>" role="button" style="font-size: 12px; color:#40FF40; margin-bottom: 10px"> Instagram </a>
    <a class="btn btn-dark btn-xs" href="<%=playerdata.Player_LinkedinProfile%>" role="button" style="font-size: 12px; color:#40FF40; margin-bottom: 10px"> LinkedIN </a>
    <a class="btn btn-dark btn-xs" href="<%=playerdata.Player_TwitterLink%>" role="button" style="font-size: 12px; color:#40FF40; margin-bottom: 10px"> Twitter </a>
Run Code Online (Sandbox Code Playgroud)

这是使用 EJS 完成的。它们基本上是具有用户社交页面 URL 字符串的 href 标签。后端是一个MongoDB

问题 - 如果我在数据库的相应字段中输入有效 URL,我将被重定向到正确的 URL。但是,如果字符串为空,则它会向 /profile/:username 发布 GET …

javascript href ejs

6
推荐指数
1
解决办法
4万
查看次数

如何使用 webpack 处理 ejs 视图

我正在尝试使用 Node js 在我的网站上配置 webpack,我还使用 ejs 作为视图。我尝试了很多方法来处理我的 webpack 中的 ejs,但到目前为止我还没有成功。

const path = require('path')
const nodeExternals = require('webpack-node-externals')

module.exports = (env, argv) => {
  return ({
    entry: {
      server: './src/app.js',
    },
    output: {
      path: path.join(__dirname, 'dist'),
      publicPath: '/',
      filename: 'main.js'
    },
    mode: argv.mode,
    target: 'node',
    node: {
      // Need this when working with express, otherwise the build fails
      __dirname: true,
      __filename: true,
    },
    externals: [nodeExternals()], // Need this to avoid error when working with Express
    module: {
      rules: [
        { …
Run Code Online (Sandbox Code Playgroud)

ejs node.js webpack

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

标签 统计

ejs ×10

node.js ×7

express ×4

javascript ×4

angularjs ×1

email ×1

href ×1

json ×1

layout ×1

mongodb ×1

multer ×1

sails.js ×1

view ×1

webpack ×1