Tag: 表示

在使用socket.io时获取express.js中的当前用户?

我正在使用快速框架,我的web应用程序的一部分使用socket.io启用实时聊天。 我需要获取当前用户的用户名,并在其中创build一个房间。 问题是我无法find一个方法来获取用户信息socket.on('连接')被调用时。 以下是我迄今为止的相关代码: var express = require('express'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var mongoose = require('mongoose'); var session = require('express-session'); var http = require('http'); var routes = require('./routes/index'); var app = express(); var server = http.createServer(app); var io = require('socket.io')(server); server.listen(4000); app.use(session({secret : 'anything', saveUninitialized: true, resave: true})); app.use(passport.initialize()); app.use(passport.session()); mongoose.connect('mongodb://localhost/my_db'); […]

传递参数来表示路由中的中间件

我正在构build一个nodejs + express RESTful服务器,并试图利用中间件来简化特定操作的授权。 我想实现的是将parameter passing给我的授权中间件function。 我想知道在路由中是否完全可以做到这一点,或者如果我必须提取中间件function中的参数。 我希望避免这种行为,因为我已经*哼*不完全一致的我的url参数名称。 我想要做的是这样的: router.get( '/:productId', auth.can_get_this_product(productId), // Pass the productId here controller.perform_action_that_requires_authorization ); 但这是不可能的。 因为我有其他路线的参数名称可能不相同(即: router.get(/:p_id, auth.can_get_thi… )。我意识到我应该回去,并确保我的参数名称是一致无处不在,并使用req.param('productId')检索中间件中的参数,但我很好奇它是否可能。

快速连接mongoose插件到mongodb

我正在尝试在一个快速项目中使用mongoose自动增量插件,并且由于某种原因我无法连接。 这是在我的app.js文件中看起来像 //dependencies var config = require('./config'), express = require('express'), session = require('express-session'), mongoStore = require('connect-mongo')(session), http = require('http'), path = require('path'), passport = require('passport'), mongoose = require('mongoose'), autoIncrement = require('mongoose-auto-increment'), helmet = require('helmet'); var stripe = require("stripe")("sk_test_nEgbqClEavLcf8zGIj4GtaOy"); //create express app var app = express(); //keep reference to config app.config = config; //setup the web […]

Passportjs处理HTTP API的访客authentication

这是我的代码: passport = require 'passport' BasicStrategy = require('passport-http').BasicStrategy passport.use new BasicStrategy((username, pwd, done) -> console.log arguments if pwd is "1234" and username is "Foo" done undefined, { username: "Foo" role: "admin" } else done() ) express = require("express") app = express() app.use express.logger() app.use passport.initialize() app.use passport.authenticate("basic", session: false) app.get '/', (req, res) -> res.send […]

根本无法安装快递发生器(只在笔记本电脑上,桌面上没有问题)

我正在尝试启动并运行node.js express,但在安装阶段遇到问题。 我已经安装好了,npm工作正常。 机器:Windows 7上的MacBook Air 2011 我第一次试图通过npm install -g express来安装express,但是在错误发生后遇到错误,我猜不是那么简单。 我在快速网站上跟随了一些build议,在我想要安装的目录中创build一个package.json文件,所以我这样做了: 的package.json: { "name": "tutorial", "description": "tutorial test app", "version": "0.0.1", "private": true, "dependencies": { "express": "4.x" } } 然后我打了npm install ,最后把安装目录安装到了目录(npm命令和package.json所在的目录) 现在我按照快速指南中的说明尝试npm install -g express-generator ,但是我遇到了与之前一样的错误: c:\code\node\tutorial>npm install -g express-generator C:\Users\JosephGoss\AppData\Roaming\npm\express -> C:\Users\JosephGoss\AppData\Roaming\npm\node_modules\express-generato r\bin\express npm ERR! peerinvalid The package flatiron does not satisfy […]

如何使用新的数据使用expressJS重新呈现视图?

我正在使用ExpressJS和MongooseJS(用于访问MongoDB)创build一个NodeJS清单系统。 我正在尝试实施一个search栏。 我希望用户input到search栏中,按回车键,然后查看包含数据库中所有匹配项的更新表。 目前,当用户在search栏中input后按下input键时,jQuery会使用search栏中的文本将POST发送到我的Express服务器。 使用mongooseJS,我find所有匹配。 问题是,当我再次呈现视图时,页面不会更新并向用户显示与search匹配的新信息。 这是我的路由器代码: var express = require('express'); var router = express.Router(); var InventoryObject = require('mongoose').model('InventoryObject'); var searchdata = ''; /* GET home page. */ router.get('/', function(req, res) { var regSearch = new RegExp('.*'+searchdata+'.*', 'i'); InventoryObject.find({productId: {$regex: regSearch}}).sort('-_id').exec(function (err, data) { res.render('index', {'inventoryObjects' : data}); searchdata = ''; }); }); router.post('/', function(req, […]

访问使用javascript的玉元素

我有一个input标签的文本types。 我想访问input标签的值,每当用户input和推送到JSON。 我的玉文件看起来像, 扩展布局 block content h1 todos #task <input type="text" id="task" name="task"/> #todos for todo in todos include todo 我正在写快速访问代码, app.get('/', function(req,res){ todos.push(new todo(req.bodyParser.task)) res.render('index',{todos:todos}); }); 我是初学者的JavaScript,节点和玉器。

尝试使用快速加载和expression4

我开始在NodeJS,但我的代码有一个问题。 我将显示代码。 我需要以MVC模式加载应用程序,我正在使用express-load ,但是当我创build加载顺序时会出错。 app.js(重要部分) var load = require('express-load'); … load('models').then('controllers').then('routes').into(app); 控制器/ home.js module.exports = function(app){ var HomeController = { index: function(req,res) { res.render('home/index'); } } return HomeController; } 路线/ home.js module.exports = function(app){ var home = app.controllers.home; app.get('/home',home.index); } 错误 npm start > 4cash@0.0.1 start /Users/ewertonmelo/Documents/projects/4cash > node ./bin/www /Users/ewertonmelo/Documents/projects/4cash/node_modules/express/lib/router/index.js:120 var search = 1 […]

Express-Generator(NodeJS)的'npm start'

我是NodeJS的新手,我试图用快速和快速生成器开始。 我用命令安装了express: C:\project>npm install -g express 然后我安装了express-generator模块: C:\project>npm install -g express-generator 然后我为该项目创build一个文件夹并安装de依赖项: C:\project\express> nodetest1 C:\project\nodetest1>npm install 一切工作正常,但是当我尝试启动服务器,出现问题与命令: C:\project\nodetest1>npm start 看来,服务启动,但它一开始就closures,结果: > nodetest1@0.0.0 start C:\project\nodetest1 > node ./bin/www C:\project\nodetest1> 当我尝试打开localhost:3000时,它不起作用。 我在网上search,我还没有find一个解决scheme,有人可以指导我如何解决这个问题? 谢谢。 更新1: 重新安装node.js并按照下面提出的步骤,现在我得到一个错误: C:\wamp\www\mynewapp>npm start > mynewapp@0.0.0 start C:\wamp\www\mynewapp > node ./bin/www npm ERR! mynewapp@0.0.0 start: `node ./bin/www` npm ERR! spawn ENOENT npm ERR! npm […]

了解Mongoose子文档

我正在学习mongoose。 目前我做了一些很好的事情,但我真的不明白Mongoose如何pipe理Schema之间的关系。 所以,容易的事情(我希望):我正在做一个经典的练习(我自己,因为我找不到一个很好的教程,创build超过2个模式)与3个模式: 用户,发布,评论。 用户可以创build多个Post; 用户可以创build很多评论; post属于用户。 评论属于用户和post。 我不认为这是非常难呃? 目前我可以很好地pipe理用户和邮政之间的关系。 我的unit testing返回正是我所需要的,此刻我正在使用mongo-relation ,我不知道这是不是一个好主意… it('Use should create a Post', function(done) { User.findOne({ email: 'test@email.com' }, function(err, user) { var post = { title: 'Post title', message: 'Post message', comments: [] }; user.posts.create(post, function(err, user, post) { if (err) return done(err); user.posts[0].should.equal(post._id); post.author.should.equal(user._id); // etc… done(); }); […]