Tag: handlebars.js

如何在login后请求用户数据,Node.JS

大家好,我是Node新手,请耐心等待。 无论如何,我目前正在为我的新节点应用程序的身份validation。 到目前为止,我有能力获得一切基本工作(login,注册,注销)。 我现在进入我的用户个人资料的设置页面,但我无法访问{{username}}或{{email}},例如,它保留空白或抛出一个错误。 我想知道如何让用户名,电子邮件和其他信息保留在会话中,或者一旦我的用户login后就可以访问它,以及以后如何向会话添加更多信息(这很重要,因为我需要做到这一点)。 这是我的代码: 注册(不包括validation) var newUser = new User({ username: username, email:email, password: password }); User.createUser(newUser, function(err, user){ if(err) throw err; console.log(user); req.flash('success_msg', 'You are registered and can now login'); login: router.post('/login', passport.authenticate('local', {successRedirect:'/', failureRedirect:'/users/login',failureFlash: true}), function(req, res) { res.redirect('/'); }); 我不确定我需要显示什么代码,但是如果你们需要看别的东西来帮助我,请告诉我。 我用快递,护照和车把来使用Node.JS。 谢谢!

如何使用Express,Javascript和Handlebars在POST请求中显示URL数据?

我将如何利用POST请求显示URL数据,如GET请求? 例如,我试图让URL “ http:// localhost:8000 / requestPost?hello = goodbye&numbers = 123 ”打印下面的列表 – 你好再见 数字 – 123 我怎样才能通过POST来访问URLvariables? 我正在使用Express&Handlebars。

如何在bash命令行上输出文件列表

我正在使用handlebars.js为我们的单页应用程序呈现客户端模板(在node.js服务器端使用Jade)。 我想预编译服务器端的句柄模板,并把它们打包成一个JS文件发送给客户端。 目前,我使用handlebars来编译模板,如下所示: $ handlebars template1.handlebars template2.handlebars -f precompiled_templates.js 我想写一个bash脚本,可以读取目录中的所有*.handlebars文件,然后通过*.handlebars编译器运行它们。 所以,如果我有一个像这样的目录: templates/ temp1.handlebars temp2.handlebars temp3.handlebars temp4.handlebars 在templates目录中运行我的bash脚本(或者一行命令)本质上会运行下面的handlebars命令: $ handlebars temp1.handlebars temp2.handlebars temp3.handlebars temp4.handlebars -f precompiled_templates.js 有谁知道我可以写一个bash脚本来获取目录中的所有句柄文件到上面的命令行吗?

在{{#each …}}中的Expressjs app.locals无法访问

你好,我有一些很简单的东西: <!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" href="{{adminUrl}}/assets/css/bootstrap/bootstrap-responsive.min.css"> <link rel="stylesheet" href="{{adminUrl}}/assets/css/bootstrap/bootstrap.min.css"> <script type="text/javascript" src="{{adminUrl}}/assets/js/vendors/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="{{adminUrl}}/assets/js/bootstrap/bootstrap.min.js"></script> </head> <body> <div style="padding: 20px; background: #fafafa; border-bottom: solid 1px #eee"> <a href="{{adminUrl}}/users/" class="btn">users list/no paging</a> <a href="{{adminUrl}}/create/" class="btn">create new user</a> </div> <h1>List data:</h1> <ol> {{#each data}} <li> <div><a href="{{adminUrl}}/details/{{id}}"><b>{{username}} – {{id}}</b></a></div> {{email}} <div>&nbsp;</div> </li> {{/each}} </ol> […]

我想知道是否有可能使用node.js窗口之间发送数据

我的目标是使情景如下: 1) User opens myapp.com in Window A 2) User clicks button which opens myapp.com/doWork in Window B 3) After performing some operations and retrieving data (requiring user input), Window B closes 4) Window A displays the data retrieved from Window B 这是可能的使用node.js? 我意识到一个简单的解决scheme就是把所有的一切都在一个窗口中完成。 我使用快递/句柄。

想知道使用基于快速渲染variables的把手部分的最佳方法

所以我想知道什么是当我有一个渲染variables设置时,在Express中加载Handlebars Partial的最佳方法。 app.get('/raves-reviews/corporate-clients', function (req, res) { res.render('raves-reviews.html', { //This of this a micro layout layout: 'main', //this is the main layout title: 'Raves & Reviews', corporate: true, //this is part of idea 1 page: 'corporate-clients' //this is part of idea 2 and 3 }); }); 因此,当用户转到mysite.com/raves-reviews/corporate-clients时,把手将首先加载主布局,我已经使用导航进行设置,以显示主页滑块或者raves-review滑块(如果没有)主页。 然后,它会加载raves-reviews.html页面,这个页面只是一个句柄文件,我已经将扩展名重命名为.html,这将是一个微型模板,可以容纳4个其他页面。 我不想做的是必须制作4页,使用相同的raves-reviews.html微型模板,并且必须包括每个其他页面作为部分。 我宁愿做一个页面,将能够处理每一个局部的需要,就像主要的布局与网站中的其他页面一样。 所以想法1,在raves-reviews.html中创build4个{{#if}}块 {{#if page1}} {{> page1}} […]

我如何重复我的布局与快递车把?

好的,我不想在每个视图中包含我的实际布局。 所以我的意见看起来像 layout.hbs <html lang="en"> <head></head> <body> <div id="content"> {{ content }} </div> </body> </html> index.hbs <div>my index content</div> help.hbs <div>my help content</div> 当我使用我的快速路线,如下面的例子,我只需要在每个视图中包括我的整个布局的东西 – 这显然是一个坏主意。 expression路线 app.use('/', function (req, res) { res.render('index', {content: 'foo'}); }); app.use('/about', function (req, res) { res.render('about', {content: 'foo'}); }); 所以问题是:如何重新使用我的布局在车把视图? 我的想法是像编辑我的内容 app.use('/', function (req:express.Request, res:express.Response, next:Function) { fs.readFile(path.join(viewPath, 'index.hbs'), […]

如何将一个对象传递给客户端Javascript – NodeJS&express

我有一些问题,我试图发送一个对象来使用我的Javascript客户端,每当我呈现视图。 我用这种方式发送(使用把手) > locations=[ { > local:"my_local", > desc:"myDesc" > }]; res.render('myView', { locaciones:locaciones }); //然后在我的视图里面的脚本标记我试图得到该变种并打印出来 <script> var myObj='{{locations}}'; console.log(locations); </script> 结果是这样的: [object] 我不能使用它的任何属性,因为它是未定义的

如何使用手柄助手来打印JSON对象

我有一个对象,我想打印在我的HTML模板(把手)。 该值是来自mysql服务器的计数查询。 这里是查询的函数: function getGrade7Applicants(req, res, next) { connection.query('SELECT COUNT(*) FROM applications WHERE grade="Grade 7" ', function (err, rows, fields) { if (err) { return next(err); }; req._applications7 = rows; return next(); }); } 这是我对路由器文件的GET请求: router.get('/dashboard', getGrade7Applicants, function (req, res, next) { res.render('admission/dashboard', { applications: { 'grade7': req._applications7 } }); }); 车把手如下: Handlebars.registerHelper('toJSON', function(object){ return […]

使用Express中的参数在URL上提供静态文件

我正在使用Express的把手模板引擎。 当不带参数的端点时,所有的静态文件都被提供。 当包含参数时情况并非如此。 app.engine('.hbs', hbs(handlebarsOptions)); app.set('view engine', '.hbs'); app.use(express.static('public')); 这是我正在尝试使用的端点。 app.get('/projects/:name', function(req, res) { if(req.params.name === 'batteryapp') { res.render('project', {name: 'BatteryApp'}); } }); 我已经看到一个例子,如果你使用res.sendFile(),显然工作。 但是,使用模板引擎时必须使用res.render()。