Tag: ejs

为什么我需要像后端的Jade或EJS这样的模板引擎?

我熟悉Angularjs(1.x)并在指令中使用模板。 目前我正在学习nodejs,并作为课程模板引擎的一部分被提及。 在后端使用它们有什么好处? 目前我看不到任何用途。

如何将EJS模板转换为string?

我想将我的variables传递到该模板,让它渲染,然后得到的HTML作为一个string。 我如何在Express中做到这一点?

如何redirect到node.js中的另一个页面

我有一个login和注册页面。 当随机用户想要login,并login成功,我想redirect他到另一个.ejs页面(例如UserHomePage.ejs),但是,我已经尝试过没有任何工作到目前为止。 if (loggedIn) { console.log("Success!"); res.redirect('/UserHomePage'); } else { console.log("Error!"); } 我也想知道,如何redirect用户点击button。 让我们说在即时通讯显示用户页面,我显示所有的用户,然后有“添加另一个使用的button”。 我怎么做? 如何在onclick后将用户redirect到Register.js页面? <h2>List of users</h2> <ul> <% uporabniki.forEach(function(user) { %> <li> <%= user.attributes.name %> <%= user.attributes.last name %> </li> <% }); %> </ul> <h3>Add another user</h3> <form method="post"> <input type="submit" value="Add user" /> </form> 非常感谢你!

在AJAX调用(使用ExpressJS)之后,通过EJS模板中的数组循环的正确方法是什么?

所以我试图循环通过一个http调用使用request模块/包使用我的内部API的对象数组。 到目前为止,我能够从API中获取数据,并在页面上显示完整的对象。 我想将其显示在我的页面上,并使用EJS模板系统进行循环。 我知道我可以使用AngularJS作为前端的东西,但我想看看我只能在服务器端使用多远。 所以下面是我的代码: server.js // Prepend /api to my apiRoutes app.use('/api', require('./app/api')); api.js var Report = require('./models/report'); var express = require('express'); var apiRoutes = express.Router(); apiRoutes.route('/reports', isLoggedIn) .get(function (req, res,next) { // use mongoose to get all reports in the database Report.find(function (err, reports) { // if there is an error retrieving, send […]

如何在Node.js项目中包含css和js文件

在express项目中包含css和js文件的正确方法是什么? 我正在使用ejs模板引擎。 我看到一个使用connect-assetmanager的例子,但是很难跟踪。 在index.ejs(而不是layout.ejs)中包含css和js的小示例项目将非常有用。

从节点上的ejs模板调用函数

我正尝试在服务器端使用ejs创build我的Web应用程序的非JavaScript版本。 我将模板传递给包含应用程序状态的对象,并且我希望使用该状态对象构build一个url。 所以基本上我想要做一些像<%= makeUrl(objectState.data [0])%> 我怎样才能使makeUrl从ejs模板中调用? 谢谢 编辑:我知道我可以将一个函数作为parameter passing给模板,但有没有更好的方法?

NodeJs和Ejs将数组传递给页面

我想传递一个数组到.ejs页面,但是当我尝试使用 var test ="<%= data %>"; console.log(test); 我得到输出 [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object 在nodejs文件Console.log工作正常,但是当我尝试console.log客户端它搞砸了。

在node.js中渲染ejs文件

嘿,我正在玩node.js,并试图呈现模板文件。 我想出了如何呈现string: var http = require('http'); var ejs = require('ejs'); var server = http.createServer(function(req, res){ res.end(ejs.render('Hello World')); }); server.listen(3000); 我怎样才能渲染一个模板文件?

如何仅使用ejs模板引擎呈现数据而无需在节点js中重新加载整个页面

我是新的Node JS。 以下是我的代码。 在AJAX调用中,新的数据不被渲染。 这是正确的方式来呈现数据,而无需加载整个页面? 有没有更好的方式来加载只有数据,而不使用AJAX。 App.js文件: app.get('/users', function(req, res) { var query = req.query.search; User.find({'name' : new RegExp(query, 'i')}, function(err, users){ var data = {list:users}; console.log("Searching for "+data); res.render('admin/users',{data:data}); }); }); 在ejs文件中调用Ajax: <script> function showResult(str) { var xmlHttp = null; xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", "/admin/users?search="+str, true ); xmlHttp.send( null ); return xmlHttp.responseText; […]

ejs include函数无法find带有html扩展名的模板

我的ejs引擎设置是app.js就像下面这样: // this parse html file as ejs file app.engine('.html', require('ejs').__express); app.set('view engine', 'html'); app.set('views', __dirname + '/view'); 我的目录是这样的: view (folder) home.html head.html app.js Home.html是这样的: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>home</title> <% include head %> </head> <body> </body> </html> 和head.html是这样的: <link rel="stylesheet" type="text/css" href="css/main.css"> <script type="text/javascript" src="js/jquery-1.5.js"></script> 问题是如果扩展名是html,文件head.html将不会被parsing。 错误表示它期望ejs文件。 那么include函数有问题吗?