标签: ejs

如何在EJS中使用req.flash()?

我希望能够使用Express和EJS向客户端发送消息.我看了一遍,但仍然找不到示例或教程.有人能告诉我闪烁消息的最简单方法吗?

谢谢!

javascript ejs node.js express flash-message

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

Node.JS,Express和MongoDB ::多个集合

我正在使用Node.JS,Express,MongoDB和EJS.我有一个关于一个数据库下的多个MongoDB集合的问题,并调用它们在前端使用.我有3个集合,经过大量研究后未发现如何调用多个集合而没有错误.

我知道将一切存储在一个集合下并不是一个问题,但我觉得最好的方法是按类别将它们分开.这是我的db/collection调用:

app.use(express.bodyParser());
var MongoClient = require('mongodb').MongoClient;

app.get('/', function(req, res){
  MongoClient.connect("mongodb://localhost:27017/michael", function(err, db) {
    if(!err) {
      console.log("We are connected");
    }
    db.collection("portfolio", function(err, collection) {
      collection.find().sort({order_num: 1}).toArray(function(err, result) {
        var portfolio = [];
        if (err) {
          throw err;
        } else {
          for (i=0; i<result.length; i++) {
            portfolio[i] = result[i];
          }
          res.render('index.html', {portfolio: portfolio});
        }
      });
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

我怎么能多次调用其他集合,例如"约"集合等?我尝试添加另一个......

db.collection("about", function(err, collection) {
Run Code Online (Sandbox Code Playgroud)

...内...

MongoClient.connect("mongodb://localhost:27017/michael", function(err, db) {
Run Code Online (Sandbox Code Playgroud)

...但它在终端控制台日志中给出了错误.

提前致谢.

编辑:

这是我正在尝试做的,这给了我一个错误:

app.get('/', function(req, res){
  MongoClient.connect("mongodb://localhost:27017/michael", function(err, db) {
    if(!err) { …
Run Code Online (Sandbox Code Playgroud)

collections ejs mongodb node.js express

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

grunt-contrib-jasmine与PhantomJS,EJS模板和XMLHttpRequest异常101

我正在尝试为一个简单的项目建立一个基本的单元测试环境,但是我遇到了一个奇怪的障碍,经过数小时的研究后我无法克服这个障碍.

出于某种原因,我Error: NETWORK_ERR: XMLHttpRequest Exception 101直接从EJS返回尝试使用XHR加载模板,但只是偶尔使用一次.

案例很简单,我有一个骨干应用程序,实例化一个呈现EJS模板的骨干视图.这看起来像这样:

BackboneView = Backbone.View.extend({
  initialize: function() {
    this.template = new EJS({url: '/app/views/root/root.template.ejs'});
  }
});
Run Code Online (Sandbox Code Playgroud)

要设置grunt-contrib-jasmine,我的Gruntfile中有以下代码段:

jasmine: {
  cms: {
    src: "app/**/*.js"
    options: {
      specs: "tests/fe/spec/*Spec.js",
      vendor: [
          "vendor/jquery/dist/jquery.js",
          "vendor/underscore/underscore.js",
          "vendor/backbone/backbone.js",
          "vendor/ejs/ejs.js",
      ],
      keepRunner : true,
      outfile : "tests/fe/_SpecRunner.html",
      host : "http://0.0.0.0:8000"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我大部分时间都可以运行我的测试套件:

$ grunt jasmine
Running "jasmine:cms" (jasmine) task
Testing jasmine specs via PhantomJS

log: came in request!, /app/views/root/root.template.ejs

log: 200

log: /app/views/root/root.template.ejs

 website.header
   header.test()
     - test should return …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing ejs phantomjs grunt-contrib-jasmine

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

用于EJS格式的Sublime Text 3包

我正在寻找一个格式化我的ejs文件的包.我已经找到"html-css-js prettify"并将"ejs"设置为allowed_file_extensions,但这不起作用.当我在其他选项中使用de default配置时,所有表达式语言都破坏了.当我在数组"unformatted"中设置"%"时,忽略表达式语言旁边的所有代码.

你们有另一个ideia或插件与sublimeText 3一起使用吗?

ejs sublimetext3 embedded-javascript

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

sails.js从config中获取环境值

我使用Sails.js和默认模板引擎(EJS).我有一个直接从routes config定义的视图:

配置/ routes.js

'/': {
    view: 'homepage'
 }
Run Code Online (Sandbox Code Playgroud)

有没有办法在homepage.ejs中访问环境?我需要这样的东西:

views/homepage.ejs(下一个不起作用,所以我需要一个有效的解决方案)

...
<span>Hello you are on <%= sails.env %> environment</span>
...
Run Code Online (Sandbox Code Playgroud)

呈现为:

Hello you are on production environment
Run Code Online (Sandbox Code Playgroud)

请不要建议我为此创建控制器.

我希望有办法直接从视图或路线中的当地人那里得到它,但是如何,这就是问题.

javascript ejs node.js sails.js

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

节点EJS将数据传递给include

目前我正在搞乱Node和EJS模板.

但是我遇到了问题.我建立了一个由多个组件组成的页面,我将这些组件调用到索引页面,如下所示:

<% include components/header.ejs %>
Run Code Online (Sandbox Code Playgroud)

我的问题是如何将数据(json)传递给特定的包含?

我希望能够重用组件,以显示来自json的不同内容.

谢谢

javascript json ejs node.js

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

将变量从javascript传递给ejs

我想使用在javascript文件中声明的变量到ejs文件.

JavaScript的:

var express = require('express');
var app = express();

var myVar = 1;
Run Code Online (Sandbox Code Playgroud)

在ejs文件中,我想在几个if语句中使用该变量,我必须再次声明它才能使用它.

ejs文件:

var myVar = 1;
if ( my Var ) ....
Run Code Online (Sandbox Code Playgroud)

我怎么能避免这种情况?或者有没有办法创建一个可以从javascript和ejs访问的配置文件?

我也试过用:

app.locals.myVar = 1

但它在ejs文件中未定义.

-------更新--------------------------

在我的代码我正在使用:

app.get('/', function (req, res) {
    res.render('index', { user : req.user, message: [] });

});
Run Code Online (Sandbox Code Playgroud)

使用app.locals后:

app.get('/', function (req, res) {

   res.render('index', { user : req.user, message: [] });
   res.render('user_info.ejs');
Run Code Online (Sandbox Code Playgroud)

});

即使代码运行正常,我收到:

ReferenceError: ....user_info.ejs:18

 >> 18|            height:60px;


user is not defined
    at eval (eval at <anonymous> (...node_modules/ejs/lib/ejs.js:464:12), …
Run Code Online (Sandbox Code Playgroud)

javascript ejs node.js express

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

用于.ejs模板中图像的Webpack文件/图像加载器

看起来如果图像标记在我的index.ejs模板中,我缺少在webpack配置中加载图像的设置.

我的项目中的html文件中的所有图像都在我的构建过程中被正确地重命名并加载,但.ejs文件中的图像标记被忽略.

即在我的.ejs中,如果我有<img src="../../home.png">它仍然是这样,但在正常的HTML文件中它改变为<img src="12345677.png">

我目前的装载机:

loaders: [
            //HTML Files
            {
                test: /\.html$/,
                loader: 'html'
            },
            //Transpile ES6 to ES5
            {
                test: /\.js$/,
                include: path.join(__dirname, 'src'),
                exclude: /node_modules/,
                loader: 'babel',
                query: {
                    presets: [
                        ["es2015", {"module": false}]
                    ]
                }

            },
            //Extract Normal CSS
            {
                test: /\.css$/,
                loader: ExtractTextPlugin.extract({ loader : 'css?sourceMap!autoprefixer', publicPath: "../"})

            },
            //Bundle Less into CSS Code
            {
                test: /\.less$/,
                loader: ExtractTextPlugin.extract({ loader : 'css?sourceMap!autoprefixer!less?sourceMap', publicPath: "../"})
            },
            //Images
            {
                test: /\.(png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$/,
                loader: 'file'
            } …
Run Code Online (Sandbox Code Playgroud)

javascript ejs ecmascript-6 webpack

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

在EJS中使用console.log

是否可以在节点/ ejs模板中使用console.log?当我尝试时,它似乎什么也没做,甚至是简单的事情:

<% console.log('test') %>
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

<%= console.log('test') %>
Run Code Online (Sandbox Code Playgroud)

控制台中什么都没有显示。

console ejs node.js

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

Express不会在vhosts中提供静态ejs文件

我能得到的最接近的是客户端下载它们.它将下载正确的ejs文件.

它让我发疯,因为我觉得它应该有效,但事实并非如此.如果我把html文件放在那里他们服务就好了.这有点乱,因为我一直在尝试各种各样的事情.

var application_root = __dirname;
var express = require('express');
var vhost = require( 'vhost' );
var https = require('https');
var http = require('http');
var fs = require('fs');
var path = require("path");
var forceSSL = require('express-force-ssl');
//do something
var app = express();
var credentials = {};

var config = require('./config.json')[process.env.NODE_ENV || 'dev'];

//Use ejs?
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);

//Ensure all are going to www.
app.all(/.*/, function(req, res, next) {
  var host = req.header("host");
  if (host.match(/^www\..*/i)) {
    next();
  } else …
Run Code Online (Sandbox Code Playgroud)

ejs vhosts node.js express

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