Tag: express

NodeJS – 显示login或不是用户的不同内容

我试图显示不同的内容login,而不是在一个页面上的用户。 这是我用来生成/页面的代码: app.get('/',function(req, res){ if (!checkSession(req, res)) { res.render('index.ejs', { title: 'FrontSpeak – blog-based social network' }) } else { res.render('index.ejs', { title: 'autrhorized' }) } }) checkSession函数: function checkSession(req, res) { if (req.session.user_id) { db.collection('users', function (err, collection) { collection.findOne({ _id: new ObjectID(req.session.user_id) }, function (err, user) { if (user) { req.currentUser = user; […]

衡量js执行时间是一种告诉应用程序响应请求的速度的方式吗?

在我的node.js / express应用程序的开始,我有一个像microtime()函数的东西。 function microtime (get_as_float) { // Returns either a string or a float containing the current time in seconds and microseconds // // version: 1109.2015 // discuss at: http://phpjs.org/functions/microtime // + original by: Paulo Freitas // * example 1: timeStamp = microtime(true); // * results 1: timeStamp > 1000000000 && timeStamp < 2000000000 […]

如何初始化backbone.js中的页面,以最大限度地减lessHTTP请求和延迟

我正在学习骨干,从这些例子和教程中我得到了这样的印象: 最初的GET /返回骨干页面和视图模板。 Backbone使用REST API通过GET需要的数据并将其添加到DOM中充实页面。 这样做很有效,但是对于额外的HTTP请求,以及从最终用户的angular度来看,这似乎是浪费(在页面可见之前至less两次往返,实际上是三次,因为API必须首先询问哪些小部件可用的,然后获取任何可用的小部件的细节….)。 有没有一个确定的,标准的方法来解决这个问题? 我目前的候选人是: 忽略问题。 将初始化数据通过embedded式JavaScript直接embedded到原始页面中。 像骨干不存在一样渲染页面。 当中枢完成初始化时,它将(希望)与用户看到的页面同步。 它可以纠正任何需要的东西,如果事情在几秒钟内改变了,但至less用户不会被挂起。 我还没有想到的另一个解决scheme? 有没有一个确定的方法来做到这一点? 这是特定情况吗? 我正在使用Node / JS / Express。

node.js表示:无法获取jquery ajax发布的数据

在客户端,我使用jquery发布数据: var data = { 'city': 'england' } $.ajax({ 'type': 'post', 'url': 'http://127.0.0.1:8000/', 'data': data, 'dataType': 'json', 'success': function () { console.log('success'); } }) 在我的server.js中,我尝试捕获该数据: var express = require('express'); var app = express.createServer(); app.configure(function () { app.use(express.static(__dirname + '/static')); app.use(express.bodyParser()); }) app.get('/', function(req, res){ res.send('Hello World'); }); app.post('/', function(req, res){ console.log(req.body); res.send(req.body); }); app.listen(8000); 该post可以成功,它返回200状态,但我不能login发布数据,它什么都没有返回,而terminal日志undefined […]

如何在node + express中重新运行请求处理程序?

我正在运行节点+ express + mongojs。 这是一个示例代码: function mongoCallback(req, res) { "use strict"; return function (err, o) { if (err) { res.send(500, err.message); } else if (!o) { res.send(404); } else { res.send(o); } }; } var express, app, params, mongo, db; express = require('express'); params = require('express-params'); app = express(); params.extend(app); app.use("/", express.static('web')); mongo = require('mongojs'); […]

调用函数并通过express.js传递callback

什么是使用express.js函数自定义callback的正确方法? 这是一个例子: //routes/reset.js user.save(function(err){ if ( err ) return next(err); reset.send_reset_email(req, res, user, function(req, res){ req.flash('info', 'Check your email for a link to reset your password.'); res.redirect('/'); }); }); 我应该使用什么签名reset.send_reset_email这样才能正常工作? 这是我的: exports.send_reset_email = function(req, res, user, next){ //send email transport.sendMail(options, function(err, responseStatus) { if (err) { console.log(err); } else { next(req, res); //do I need […]

在客户端从CoffeeScript渲染JS(在Node.js服务器上)

我怎样才能做这个工作? 这是我的玉档: !!! html head title= title link(rel='stylesheet', href='/stylesheets/style.css') sript(type='text/javascript', src='/javascripts/script.coffee') 我不想在我的项目中使用任何JavaScript,所以我使用node-dev运行app.coffee而不是app.js作为服务器。 它适用于服务器端的咖啡文件,但不适合客户端。 我需要某种可以在飞行中编译咖啡文件的渲染引擎,如触笔中间件: app.use require('stylus').middleware(__dirname + '/public') app.use express.static path.join __dirname, 'public'

在Heroku上找不到的Jade模板

在本地运行此 Express应用程序。 在Heroku上运行时,在请求/或/nested时会出现粘贴错误 Error: Failed to lookup view "index" at Function.app.render (/app/node_modules/express/lib/application.js:493:17) at ServerResponse.res.render (/app/node_modules/express/lib/response.js:753:7) at /app/server.js:21:16 at callbacks (/app/node_modules/express/lib/router/index.js:161:37) at param (/app/node_modules/express/lib/router/index.js:135:11) at pass (/app/node_modules/express/lib/router/index.js:142:5) at Router._dispatch (/app/node_modules/express/lib/router/index.js:170:5) at Object.router (/app/node_modules/express/lib/router/index.js:33:10) at next (/app/node_modules/express/node_modules/connect/lib/proto.js:199:15) at store.get.next (/app/node_modules/express/node_modules/connect/lib/middleware/session.js:309:9) Error: Failed to lookup view "nested/index" at Function.app.render (/app/node_modules/express/lib/application.js:493:17) at ServerResponse.res.render (/app/node_modules/express/lib/response.js:753:7) at /app/server.js:24:16 at callbacks (/app/node_modules/express/lib/router/index.js:161:37) […]

如何检索MongoDB中的“相关”文档?

我为MongoDB使用node.js,express和MongoSkin驱动程序。 我试图在我的博客应用程序中显示一个显示博客文章列表的视图。 每篇文章都有一个作者ID的参考。 我试图对每个post进行第二次查询,以获取每个引用的完整作者文档。 一切asynchronous都让我感到困惑。 在获取博客文章列表的callback中,我正在循环阅读每篇文章,并进行第二次调用以获取关联的用户。 一旦所有post都添加了作者文档,我不知道如何渲染视图。 我甚至不确定我是否正在做这个权利。 如何参考其他文件来完成我想要做的事情? // getPageOfPosts is a custom helper that accepts the page number and number of items to retrieve. db.collection('blogPosts').getPageOfPosts(req.param('page') || 1, 3, function (err, blogPosts) { if (err) req.next(err); blogPosts.forEach(function (blogPost) { db.collection('users').findOne({ _id: blogPost.authorId }, function (err, user) { if (err) req.next(err); blogPost.author = user; }); […]

PayPal IPN节点express bodyParser

我试图让贝宝ipn工作我的node.js快递应用程序,我必须validationipn的信息,一旦我收到“通过发回内容的顺序,他们收到的确切顺序和之前的命令_notify-validation”。 他们给出的例子是这样一个查询string: https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_notify-validate&mc_gross=19.95&protection_eligibility=Eligible&address_status=confirmed&payer_id=LPLWNMTBWMFAY&tax=0.00&…&payment_gross=19.95&shipping=0.00 但是,因为我使用bodyParser,request.body是一个json对象。 如果我要附加“cmd = _notify-validate”并将其发回,我将如何接收它作为一个简单的查询string,并发送它作为一个简单的查询string,而不会摆脱bodyParser? 我仍然需要这个路由上的jsonparsing版本来实际解释数据。 另外,在服务器端发送POST是什么样的? (我只是做res.send(str)?)