标签: ejs

EJS 处理 array.map(callback) 吗?

我将一个对象数组传递给一个 EJS 模板,我想使用数组的常规 .map() 方法将其映射到链接中。但是由于我无法弄清楚的原因,我传递给 map() 的回调在 EJS 中无法按照我期望的方式工作,并且我得到了空结果。

我的数据是一个对象数组,每个对象都有一个“部分”和一个“名称”键。此数组作为“条目”传递给模板:

siteHeaders = [ { section: "home", name: "Home"}, 
                { section: "about", name: "About Me"}, 
                ... plus few more ]
Run Code Online (Sandbox Code Playgroud)

模板看起来像这样,我把它放在一个名为 (surprise) 的局部变量中template

<% entries = entries.map(function(elem) { -%>
  <% return -%>
  <a href="/<%= elem.section %>">
    <%= elem.name %>
  </a>
<% } ) -%>
<p><%- entries.join(" | ") %></p>
Run Code Online (Sandbox Code Playgroud)

这个模板的结果,当我打电话时require('ejs').render(template, {entries: siteHeaders})是:

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

我不明白的是为什么这在 EJS 模板中不起作用,当相应的 map 调用在 REPL 中工作得很好时:

> siteHeaders.map(function(e){ …
Run Code Online (Sandbox Code Playgroud)

map ejs node.js

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

ejs - 在 for 循环中使用包含时出现“意外标识符”

我正在使用<% include components/aside.ejs %><% include components/head.ejs %>在我的代码中的某个地方没有任何问题。但是当我include在这样的 for 循环中使用时

<%
for (var i = 0; i < 20; i++) {
    include components/head.ejs;
}
%>
Run Code Online (Sandbox Code Playgroud)

,我明白了Unexpected identifier in [file path] while compiling ejs

是否有任何我没有注意到的明显错误?

ejs node.js

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

如何在 EJS 模板中使用块继承

基地.ejs:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>My Diary</title>
    <link rel="stylesheet" href="stylesheets/bootstrap.min.css">
    <script src="javascripts/jquery.js" ></script>
    <script src="javascripts/bootstrap.min.js"></script>

</head>
<body>
<script type="text/javascript">

$(document).ready(function(){

});




</script>

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

索引.ejs:

<div class="container">
<!-- Button trigger modal -->
<h1>Welcome to Your Diary</h1>
<div>


<span class="label label-default">What would you like to do? </span>&nbsp;
<span class="label label-primary">Here are your Categories:</span>&nbsp;


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

我想要块继承

ejs express

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

可以在 PWA 中使用 EJS 等模板引擎吗?

我正在学习编写渐进式 Web 应用程序,所有示例都使用 html 文件。我更喜欢将 EJS 与节点服务器一起使用。是否可以缓存 ejs 以便可以在本地使用?

ejs progressive-web-apps

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

我们可以在 Node JS 应用程序中使用 socket.io 和 ejs(嵌入式 javascript)而不是 html 页面吗?

在浏览器的客户端作为 ejs 页面:

<script src="https://cdn.socket.io/socket.io-1.2.0.js">
</script>
<script>
var socket = io()
socket.on('message', function (msg) {
    console.log(msg)
})
</script>
Run Code Online (Sandbox Code Playgroud)

在 Node Js 的服务器端:

var http = require('http').Server(app);
var io = require('socket.io')(http)
io.on('connection', function(socket){
    console.log('a user connected')
    socket.on('disconnect', function(){
        console.log('user disconnected')
    })
io.emit('message', json);
})
Run Code Online (Sandbox Code Playgroud)

我没有在 Node Js 控制台中获得“用户连接”日志。由于VAR插座= 10()不工作或者是什么我不知道的问题。我可以在 .ejs页面中使用socket.io吗?我需要 ejs,我的应用程序中还需要 socket.io。任何帮助,将不胜感激。

javascript sockets ejs node.js socket.io

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

如何“缓存”要在 Express.js 视图和路由中使用的 mongoDB/Mongoose 结果

我想要实现的是某种方式来缓存我可以在我的视图和路由中使用的mongoDB/Mongoose查询的结果。每当向集合中添加新文档时,我都需要能够更新此缓存。由于函数是异步的,我不确定这是否可行,如果可行,那么如何去做

这是我目前用于存储画廊的内容,但是每个请求都会执行此操作。

app.use(function(req, res, next) {
  Gallery.find(function(err, galleries) {
    if (err) throw err;  
      res.locals.navGalleries = galleries;
      next();
  });
});
Run Code Online (Sandbox Code Playgroud)

这用于获取画廊名称,然后将其显示在动态生成的画廊的导航栏中。画廊模型只设置了画廊的名称和一个slug

这是我导航中的EJS视图的一部分,它将值存储在下拉菜单中。

<% navGalleries.forEach(function(gallery) { %>
  <li>
    <a href='/media/<%= gallery.slug %>'><%= gallery.name %></a>
  </li>
<% }) %>
Run Code Online (Sandbox Code Playgroud)

我正在开发的网站预计将获得数十万并发用户,因此如果不需要,我不想为每个请求都查询数据库,并且只要在创建新画廊时更新它。

caching ejs mongoose mongodb express

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

尝试上传图像 mongodb(mlab)

我正在尝试使用节点 js 将图像上传到服务器以及本地文件夹。但问题是,当我尝试发布表单时,enctype图像仅保存在本地文件夹中,而不是保存在 mongodb 中。但是,如果我删除,enctype则图像仅保存在 mongodb 中。

<form  method="POST" enctype="multipart/form-data" action="/posts" >
Run Code Online (Sandbox Code Playgroud)

我的 server.js 文件 ---

//call module
var express = require('express');
var app = express();
var path = require('path')
var multer = require('multer')
//var upload = multer({dest: './uploads'})
var routes = require('./routes/index')
const bodyParser= require('body-parser')
//var port = process.env.PORT|| 3000;

// Multer path define
var storage = multer.diskStorage({
	destination: './uploads',
	filename: function(req,file,cb){
		cb(null,file.fieldname + '_' + Date.now() +path.extname(file.originalname) );
	}
});
// init upload

var …
Run Code Online (Sandbox Code Playgroud)

javascript ejs mongodb node.js multer

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

Firebase 函数不使用 express.js 和 EJS 视图引擎提供静态文件

过去一个月我一直在研究这个问题,但没有找到任何有用的解决方案。我目前正在尝试使用 firebase 函数以及 express.js 和 EJS 视图引擎来托管网站。

我将讨论将静态 CSS 文件提供给 EJS 文件的问题。我已经看遍了,但似乎找不到任何有帮助的正确答案。

我有以下文件结构(在函数文件夹内):

  • 民众
  • 意见
  • 索引.js

这是我的 index.js:

const functions = require('firebase-functions');
const express = require("express");
const ejs = require("ejs");
var path = require('path');

// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
// exports.helloWorld = functions.https.onRequest((request, response) => {
//  response.send("Hello from Firebase!");
// });

var app = express();

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

// app.use('/static', express.static('public'));
app.use(express.static(__dirname + "/public"));
app.get("/", (request, response) => {
    response.render("test");
}) …
Run Code Online (Sandbox Code Playgroud)

ejs node.js express google-cloud-functions

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

在 VS Code 中使用 Prettier 格式化 .ejs 文件

我想通过添加自定义规则来使用 prettier 来格式化我的 ejs 文件。

现在我正在为 ejs 文件使用 html 的文件关联。

我在 settings.json 文件中添加了以下代码: "files.associations": { "*.ejs": "html" },

ejs visual-studio-code prettier

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

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万
查看次数