使用 EJS 时链接 css 文件时遇到困难。已经研究过其他答案,但无法弄清楚这是我用作 css 文件参考的代码。
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="index.css">
<title></title>
</head>
<body>
<header>
<% include header %>
</header>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
css 文件与 ejs 文件位于同一目录(views 目录)中。这会导致任何问题吗?标头只是另一个带有一些静态 html 的 ejs 文件。
const express = require("express");
const path = require('path');
const app = express();
app.set("views", path.resolve(__dirname, "views"));
app.set("view engine", "ejs");
app.use(express.static(__dirname + 'public'));
app.get('/', (req, res) => {
res.render("index");
})
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)
我最终想将我的 css 文件移动到另一个文件夹中,但我真的想知道为什么这不起作用。由于这些文件位于同一文件夹中,我希望相对路径<link rel="stylesheet" href="index.css">能够工作。
我正在使用 Express,并尝试从 Azure 门户调用 LoginMember 存储过程。这是我的表格,取自 ejs:
\n\n<form method="post" action="/available-copies">\n <input type="text" placeholder="SSN" name="userssn">\n <input type="password" placeholder="Password" name="userpassword">\n <input type="submit" value="Login">\n</form>\nRun Code Online (Sandbox Code Playgroud)\n\n这是我的帖子请求
\n\nrouter.post(\'/available-copies\', function (req, res) {\n var ssn = req.body.userssn;\n var password = req.body.userpassword;\n\n sql.connect(sqlConfig, function (err) {\n if (err) console.log(err);\n // create Request object\n var request = new sql.Request();\n // query to the database and execute procedure\n request.query("exec LoginMember @SSN=\'"+ssn+"\', @PASSWORD=\'"+password+"\';", function (err, recordset) {\n if (err) console.log(err);\n\n res.send(recordset);\n });\n });\n sql.close()\n});\nRun Code Online (Sandbox Code Playgroud)\n\nSqlConfig 来自另一个文件,这部分没问题。以防万一,这是我的存储过程创建代码: …
我正在尝试学习一些 ejs 和 node,我知道我可以轻松地创建一个仅使用 JS 和 HTML 的弹出模式,就像这样,当我单击某个按钮时调用一个函数
调用函数的按钮:
<button id="myBtn">Open Modal</button>
Run Code Online (Sandbox Code Playgroud)
功能:
btn.onclick = function() {
modal.style.display = "block";
}
Run Code Online (Sandbox Code Playgroud)
但是我如何使用 Ejs 和 NodeJs 来做到这一点呢?
我正在尝试检查用户是否在我的 mongodb 数据库中,但我不断收到错误:Operation users.findOne()buffering timed out after 10000ms。我尝试了很多事情,但似乎无法让它发挥作用。请帮忙。
服务器.js
const express = require('express');
const app = express();
const dotenv = require('dotenv').config();
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const path = require('path');
const cookieParser = require("cookie-parser");
const indexRoute = require('./routes/index');
const authRoute = require('./routes/auth');
mongoose.connect(process.env.DB_CONNECT, { useNewUrlParser: true }, () => {
console.log('Connected to MongoDB');
});
app.use(express.json());
app.use(cookieParser());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(__dirname + '/views'));
app.use(express.static('Public'));
app.set('view engine', 'ejs');
app.set("views", path.join(__dirname, "views"));
app.disable('x-powered-by');
app.use('/', indexRoute);
app.use('/auth', …Run Code Online (Sandbox Code Playgroud) 我试图在单个视图中使用两个模型,因此模板但在尝试此问题中显示的示例后:Backbone.js:组合多个模型的复杂视图我遇到了一些错误.
首先,如果我尝试使用视图模型将两个模型组合如下:
var model = new Backbone.Model();
model.set({ image: image, person: person });
var view = new Project.Views.Images.ShowView({ model: model });
Run Code Online (Sandbox Code Playgroud)
我无法访问模板中的任何内容,每个字段都是空的,或者某些字段是函数的字符串表示形式.这是我的模板:
<img width="<%= image.width %>" height="<%= image.height %>" alt="<%= image.message %>" src="<%= image.url %>" />
<p><%= image.message %></p>
<h4>by <%= person.name %></h4>
Run Code Online (Sandbox Code Playgroud)
这是模板生成的输出:
<img width="" height="" alt="" src="function () {
var base = getUrl(this.collection) || this.urlRoot || urlError();
if (this.isNew()) return base;
return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + encodeURIComponent(this.id);
}"> …Run Code Online (Sandbox Code Playgroud) 我正在尝试将JSON-object形式的MongoDB发送到带有ejs模板引擎的页面.这是我的DB(一个JSON对象)的响应:
"suppliers": [
{
"lastname": "lastname1",
"firstname": "firstname1",
"middlename": "middlename1",
"mobtel": "mobtel1",
"worktel": "worktel1",
"email": "email1"
},
{
"lastname": "lastname2",
"firstname": "firstname2",
"middlename": "middlename2",
"mobtel": "mobtel2",
"worktel": "worktel2",
"email": "email2"
}
]
Run Code Online (Sandbox Code Playgroud)
当我从数据库中获取对象时,我必须将其字符串化为str以作为EJS模板引擎的var发送:
var myJSONText = JSON.stringify(doc.suppliers);
profile["suppliers"] =myJSONText;
...
res.render('profile.ejs',{profile:profile});
Run Code Online (Sandbox Code Playgroud)
在前端,我得到一个带有json数据的普通字符串.我通过jQuery解析它到一个对象:
var jsonObject = jQuery.parseJSON('<%= profile.suppliers %>');
for (var i=0; i<jsonObject.length; i++){
//trying to show field 'name' for every supplier
alert(jsonObject[i]['lastname']);
}
Run Code Online (Sandbox Code Playgroud)
......它不起作用,但应该提醒我两次.我试图检查一个纯文本的JSON字符串,来到前端,并找到了这样的符号:
[{"lastname": " ...
Run Code Online (Sandbox Code Playgroud)
似乎jQuery.parseJSON无法从此类字符串创建有效对象.我做错了什么?谢谢!
更新:嗯,我已将我的代码转换为:
NodeJS代码:
profile["suppliers"] =doc.suppliers;
res.render('profile.ejs', { profile:profile });
Run Code Online (Sandbox Code Playgroud)
jQuery代码:
for …Run Code Online (Sandbox Code Playgroud) 我不能用ejs渲染布局,表达:
app.configure(function () {
app.use(express.static(__dirname + '/public'));
app.use(express.basicAuth('username', 'password'));
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
});
Run Code Online (Sandbox Code Playgroud)
layout.ejs位于/ views文件夹中.我渲染/views/home/index.ejs但它不是布局:
res.render('home/index');
Run Code Online (Sandbox Code Playgroud)
layout.ejs:
<html>
<head>
<title></title>
<script type="text/javascript" src="/content/scripts/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="/content/scripts/jquery-ui-1.8.11.min.js"></script>
<script type="text/javascript" src="/content/scripts/jquery.unobtrusive-ajax.min.js"></script>
<script type="text/javascript" src="/content/scripts/jquery.validate.min.js"></script>
<script type="text/javascript" src="/content/scripts/jquery.validate.unobtrusive.min.js"></script>
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
<link rel="stylesheet" type="text/css" href="/content/styles/site.css" />
<link rel="stylesheet" type="text/css" href="/content/styles/themes/base/jquery.ui.all.css"/>
</head>
<body>
<%- body %>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个具有自动格式化ejs文件功能的包.我已经安装了HTMLPrettify.是否可以将ejs添加为html格式,以便将其格式化为html代码?这对我来说已经足够了.
我想做的是从表单获取数据,但是表单是动态生成的,所以我不知道会有多少行。所以对于我拥有的表单(使用ejs)
<form action="/attendance-data" method="post">
<% var i=0 %>
<% rows.forEach(function(item){ %>
<% i=i+1 %>
<tr>
<td><%= i+"." %></td>
<td id="uan<%= i %>"> <%= item.uan %> </td>
<td><%= item.name %></td>
<td><%= item.designation %></td>
<td><input type="text" name="attendance<%= i %>" ></td>
</tr>
<% }); %>
<input type="submit" value="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
在这里,我从1更改为10或任何数据长度。因此,示例表单名称来自Attenance1,Attenance2,Attenance3,.....
在服务器端,我正在使用
app.post('/attendance-data',function(req,res){
var daysPresent;
var attendance;
for(var i=1;i<=numberOfEmployees;i++){
attendance = "attendance"+i;
daysPresent = req.body.attendance;
console.log('attendance is :',attendance);
console.log('days present is :',daysPresent);
}
});
Run Code Online (Sandbox Code Playgroud)
在这里,我想从表单中获取每个循环的当前天数。因此,第一个循环获取req.body.attendance1,第二个获取req.body.attendance2,依此类推,但是当我直接使用变量Attenance而不是Attenance1和Attenance2时,结果就变得不确定。
当我直接使用req.body.attendance1或req.body.attendance2或类似的东西时,我只会得到结果。
为什么会这样呢?为什么我不能使用出勤变量,该变量从Attenance1,Attenance2 ......获取所有值
可以使用EJS标签将数据添加到图形吗?这是我当前图形的数据:
var canvas = document.getElementById('myChart');
var data = {
labels: ["One", "February", "March", "April", "May", "June", "July"],
datasets: [
{
label: "My First dataset",
backgroundColor: "rgba(255,99,132,0.2)",
borderColor: "rgba(255,99,132,1)",
borderWidth: 2,
hoverBackgroundColor: "rgba(255,99,132,0.4)",
hoverBorderColor: "rgba(255,99,132,1)",
data: [10, 20, 81, 56, 55, 40],
}
]
};
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
labels: ["<%= currentUser.datapoint1 %>", "<%= currentUser.datapoint2 %>", "<%= currentUser.datapoint3 %>"]
data: [<%= currentUser.datapoint10 %>, <%= currentUser.datapoint11 %>]
Run Code Online (Sandbox Code Playgroud)
如何使用EJS标签填充图形数据?(注意:在需要生成图表之前,EJS标记信息将已经保存到用户中)
ejs ×10
node.js ×8
express ×6
javascript ×5
mongodb ×2
backbone.js ×1
chart.js ×1
format ×1
html ×1
jquery ×1
json ×1
post ×1
sql-server ×1
sublimetext2 ×1