Articles of 表示

LoggedIn未在每个实例中定义

我的代码曾经工作,并在几天后没有触摸它,因为cloud9ide工作不正常,它停止工作。 我总是得到一个req.loggedin未定义与everyauth模块。 我做一个简单的: app.get('/view/:htmlpage', function(req, res){ console.log(req); if(req.loggedIn) { res.sendfile('./views/' + req.params.htmlpage + '.html'); } else{ res.send('You need to be authenticated with a <a href="www.facebook.com">Facebook</a>'); } }); 请求打印: {会话: // IGNORE ALL KIND OF STUFF // "loggedIn":true,"userId":"4ec448e67a06792a32000006"}}' }, hash: [Function], generate: [Function] }, 哪里不对? 一切似乎find,但我仍然得到undefined …? 这是req的一个更大的摘录: sessionStore: { sessions: { 'OoYpzK3P9V5EuVzsaIzcENKA.u86589nxU+3B5y/DZ/GUWmLLd4hKiVMZQlM3uXpkpdk': '{"lastAccess":1321711710418,"cookie":{"originalMaxAge":14400000,"expires":"2011-11-19T18:08:30.421Z","httpOnly":true,"path":"/"}}', 'ro6CtsS269MqF9DhXHIYVzfi.VVqZHKF6DcGewMbS+myRWbeev6oMmJZEqWQ6oq0Y2mE': '{"lastAccess":1321711711837,"cookie":{"originalMaxAge":14400000,"expires":"2011-11-19T18:08:31.838Z","httpOnly":true,"path":"/"}}', […]

Require()在REPL似乎不能正常工作

问题:我刚刚开始使用node.js,当使用REPL来require一个模块时,它的函数一直显示为undefined。 哪里出了问题? 另外,为什么var s = require('./simple'); 行导致undefined响应? 我正在使用节点v0.6.2 simple.js var counts = 0; exports.next = function() { counts++; } 我在REPL做了什么 > var s = require('./simple'); undefined > s.next [Function] > s.next() undefined > s.next(); undefined

Socket.io超出范围或缺less方法?

我开始玩socket.io,我真的很喜欢看到一个更好的书面文档,因为很难find哪些方法有每个对象,callback如何工作等等。 所以我用express和socket.io来试试这个: var app = require('express').createServer() , io = require('socket.io').listen(app); app.listen(8080); var clients = []; /*Routes*/ app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); app.get('/user/:id', function(req, res){ io.sockets.broadcast.emit('user', {id: req.params.id}); }); io.sockets.on('connection', function (socket) { clients.push(socket.id); io.sockets.socket(socket.id).emit('connection', clients); socket.broadcast.emit('conexion', { id: socket.id }); }); 而当试图访问:本地主机:8080 /用户/testing它不起作用,并输出以下内容: TypeError: Cannot call method 'emit' of undefined at […]

在Node.js中链接asynchronous函数的正确方法是什么?

我有一个有趣的案例,我需要在MongoDB中使用Mongoose进行一些查询,但是在完成所有这些查询之前,响应正在返回。 我有两种文档types,列表和项目。 在一个特定的调用中,我需要获取特定用户的所有列表,然后迭代每个列表并获取所有项目,并在返回之前将它们附加到适当的列表中。 List.find({'user_id': req.params.user_id}, function(err, docs){ if (!err) { if (docs) { var results = []; _und.each(docs, function(value, key) { var list = value.toObject(); list.items = []; Item.find({'list_id': value._id}, function(err, docs) { if (!err) { _und.each(docs, function(value, key) { list.items.push(value.toObject()); }); results.push(list); } else { console.log(err); } }); }); res.send(results); (_und是我如何导入underscore.js) 显然问题是callback,并且由于有多个循环,我不能在callback中返回。 也许这是一个情况,我需要提前计数,并在每次迭代检查它来决定何时返回结果。 这似乎并不高雅。

在expressjs中使用node-http-proxy时出错

我没有得到node-http-proxy的最后一个版本(虽然这个版本在之前的版本中有效)。 Node.js版本是0.6.12,node-http-proxy版本是0.8.0。 基本上,我有一个服务器监听端口10000和另一个监听端口5000.我想代理这个最后一个家伙所有的请求/ / API(删除这个前缀后)。 我的代码是: var express = require("express"); var httpProxy = require('http-proxy'); var cluster = require('cluster'); var fs = require('fs'); // Use http server for local tests var app = express.createServer(); // Proxy request targeting API app.all('/api/*',function(req, res){ // Remove '/api' part from query string req.url = '/' + req.url.split('/').slice(2).join('/'); // Create proxy […]

玉 – 意外标识符

我使用下面的NodeJS路由: server.get('/', function(req, res) { res.render('index'); }); 看来我的index.jade文件中有一个错误,因为它告诉我: SyntaxError:在Object.compile(/media/Data/development/private/PicoBudget/node_modules/jade/lib/jade.js:160:8)上的Object.Function(未知源)的意外标识符在Function.compile(/ media / (/media/Data/development/private/PicoBudget/node_modules/express/lib/view.js:417:Data / development / private / PicoBudget / node_modules / express / lib / view.js:68:33) 18)在ServerResponse.render(/media/Data/development/private/PicoBudget/node_modules/express/lib/view.js:318:17)at /media/Data/development/private/PicoBudget/app.js:51: 7在callback(/media/Data/development/private/PicoBudget/node_modules/express/lib/router/index.js:272:11)param(/ media / Data / development / private / PicoBudget / node_modules / express / lib /router/index.js:246:11)at pass(/media/Data/development/private/PicoBudget/node_modules/express/lib/router/index.js:253:5)at Router._dispatch(/ media / Data /development/private/PicoBudget/node_modules/express/lib/router/index.js:280:5) 这是我的index.jade: doctype 5 html(lang="en") […]

Node.js / express.js / Backbone.js:req.body.keys是未定义的?

我在客户端使用Backbone.js,在服务器上使用express.js,我试图通过Backbone保存/放置模型更新。 我对Backbone.sync没有做任何事情,所以它应该只是简单的旧$ .ajax。 在服务器上,我有一个简单的 app.put('my-url', function(req, res){ req.body.keys.forEach( function(key){ // do stuff with key }); }); 每一次,我都会收到一个错误消息,说'不能调用forEach'的方法'undefined,并且肯定有一个快速的console.log显示req.body.keys是未定义的。 另外一个console.logs对象表明Object.keys和'forEach'就好了,那个types的req.body就是对象。 任何人都看到错在哪里? 我试过JSON.parse(req.body),并得到着名的“意想不到的令牌o”错误…

Express.js呈现简单的HTML

我正在制作一个显示HTML表格的networking应用程序。 该应用程序是用Express写的,由mongo支持。 我需要根据数据比较,数据types等诸多不同因素dynamic设置表格中不同的框/单元格。 现在,我正尝试使用jade从Mongo中获取json。 但是我需要做的是读取mongo中的行,将表标记应用到字段中,基本上构build一个HTML表并在AS-IT-IS页上回显。 这意味着,我将使用代码构buildhtml,然后将其显示为html,就像rails html_safe方法一样。 我怎么用express.js做到这一点?

在expressjs中,Dustjs多个模板无法正常工作

在expressjs中,Dustjs多个模板无法正常工作500错误:模板未find:模板 我的基地防尘模板如下(template.dust) <div class="page"> {+pageHeader}Hello World!{/pageHeader} <div class="bodyContent"> {+bodyContent/} </div> <div class="footer"> {+pageFooter} <hr> <a href="/contactUs">Contact Us</a> {/pageFooter} </div> </div> 而我正试图在我的家庭内部调用这个基础模板。我得到如下错误 Express 500 Error: Template Not Found: template at Object.load (C:\office\nodejs-example\express_example\node_modules\application-name\node_modules\dust\lib\dust.js:54:27) at Chunk.partial (C:\office\nodejs-example\express_example\node_modules\application-name\node_modules\dust\lib\dust.js:407:15) at body_0 (undefined:1:130) at Array.0 (C:\office\nodejs-example\express_example\node_modules\application-name\node_modules\dust\lib\dust.js:34:7) at EventEmitter._tickCallback (node.js:192:40) “home.dust” {>"template"/} {<pageHeader} {?username} Welcome {username} <a href="/items">Items</a> | <a href='/logout'> Log […]

通过variables来expression3条路线

我有一个ExpressJS 3应用程序,并在一个单独的文件中有我的路线。 我想在我的app.js中声明路由文件中可用的一些configuration – 在路由定义本身之外。 在我的app.js我想做一些事情,如: app.set('path_to_models', '/path/models/'); 然后在我的routes / index.js文件,我想能够做到这一点: var Product = require(app.get('path_to_models') + 'product'); exports.list = function(req, res){ return Product.find(function (err, products) { if (!err) { res.render('product/manage', { products: products }); } else { res.render('5xx'); } }); }; 我已经看到了一些相关的post,但没有真正解决我在找什么。 我知道我可以在一个函数中包装路线,但是如果可能的话,我想要一个替代方法来保持我的代码。 谢谢