Tag: 连接

Connect-mongo会话不会被自动删除

我有一个使用NodeJS,Express,MongoDB和connect-mongo的应用程序。 我的问题是,会话过期似乎不会自动从MongoDB中删除,所以数据库大小增长,直到磁盘已满。 connect-mongo的开发者写了一条评论 : connect-mongo会要求MongoDB删除在当前date之前过期的所有会话。 但是,这似乎并没有发生在我的情况。 我的configuration是: var express = require('express'); var MongoStore = require('connect-mongo'); var sessionStore = new MongoStore({db: 'myappsession'}); var app = express.createServer(); app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser()); app.use(express.session({ secret: "myappsecret", store:sessionStore })); app.use(app.router); app.use(express.static(__dirname + '/public')); }); 而我目前正在运行以下版本: 节点: 0.7.0-pre connect-mongo: 0.1.7 表示: 2.5.2 连接: 1.8.5

Express js的身体parsing器不工作?

我在我的节点服务器中使用快递以下(截断到重要的部分): var app = express.createServer(); app.all(/test/,function(req,res){ console.log(req.headers); console.log(req.body); res.send(""); }); function appStart(cobrands){ app.configure(function(){ app.use(express.bodyParser()); app.use(express.cookieParser()); app.use('/min',express.static('../min')); app.use('/js',express.static('../js')); app.use('/css',express.static('../css')); app.use('/img',express.static('../img')); }); app.listen(8080); } 然后我有一个简单的表单调用localhost:8080像这样: <form action="http://localhost:8080/test" method="post"> <input type="hidden" name="test" value="testing"/> <input type="submit" name="submit" value="to node"/> </form> 但express.bodyParser似乎没有做任何事情,而且req.body是未定义的。 以下是console.log的输出: // req.headers { host: 'localhost:8080', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1) AppleWebKit/534.48.3 (KHTML, like Gecko) […]

nodejs +护照+快递3.0 +连接闪光灯不闪烁?

我正在使用护照本地策略来validation用户。 我遵循了Jared Hanson给出的指导,并安装了连接闪光灯,以便为req对象提供flash方法。 所以我的一个请求处理程序如下: app.post('/login', passport.authenticate('local', { successRedirect: '/' , failureRedirect: '/login' , successFlash: 'Bienvenido' , failureFlash: 'Credenciales no válidas' }) ); 当用户login失败时,它将用户redirect到/login,但不会闪烁任何内容:/ 更新:我使用mongodb会话存储,我看到这个: > db.sessions.find() { "_id" : "qZ2eiTnx6r9LR25JOz/TGhiJ", "session" : "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"passport\":{\"user\":\"4ffb5b5db9cc16b615000001\"},\"flash\":{\"error\":[\"Credenciales no válidas\"],\"success\":[\"Bienvenido\"]}}" } 所以这些消息被插入到会话对象中,但是它们不被拉出。 我应该做一些特别的吗?

coffeescript,玉器,手写笔 – > js,css资产经理? 的node.js

我在咖啡,玉和铁笔工作。 我的应用程序提供两个不同的“单页应用程序”。 对于这些应用程序,我为初始有效负载提供所有资产。 我想将所有的咖啡脚本文件和玉雕成一个单一的js资产和手写笔文件分组,编译和连接成一个单一的CSS资产为每一个“一个页面的应用程序”。 然后,我可以将我的/public/js和/public/css单独留下,并且它们将始终具有两个不同应用程序的当前js和css资产文件。 有没有人以前设置过这样的工作stream程? 任何想法我可以做到这一点? 谢谢!! 编辑: http : //blog.fogcreek.com/the-trello-tech-stack/ 通过更多的研究,我发现了这里写的这个过程,但是他们没有说明他们是如何做到的。

(NodeJS)Express仅通过使用Connect提供了什么?

Express提供的仅仅是使用Connect? Express的大部分function似乎都是Connect的function。 有什么Express提供的列表? 谢谢, 克里斯。

这个怎么用? 在Express中使用可选的第一个参数(err,req,res,next)或者(req,res,next)

使用Express / Connect,我可以使用以下任何一种格式来设置中间件function: function(req, res, next) // first argument will be a request 要么 function(err, req, res, next) // first argument will be an error 从Express,Connect连接到基本的JavaScript:我不明白这是如何有可能有一个可选的第一个参数 ? 如何expression知道我的函数会先接受一个err对象? 我认为要做到这一点,结构必须像下面这样: function(req, res, next, err) 我在这里错过什么基本的东西? 是否有可能查询一个函数预计有多less个参数? 编辑:感谢下面的答案。 但中间件函数被传递来表示,所以argumentsvariables是无效的。 虽然length是正确的…我想我已经明白了,对于是否确实是这样的情况是很好的。 示例如下: var fn; fn = function (one, two) {}; console.log(fn.length); // 2 fn = function (one, two, […]

在应用程序中使用中间件expressjsredirect

我正在尝试做一个处理url别名的中间件,我现在正在做的是: // […] module.exports = function() { return function(req, res, next) { // getAlias would get an object {alias:"alias/path",source:"/real/path"} or null var alias = getAlias(req.url); if(alias) { req.url = alias.source; } next(); }; }; 所以basicaly我正在寻找一个商店的请求的url,如果它被发现作为一个别名我改变request.url到该别名的源path,以便快递调用正确的路线。 问题是request.url和request.path具有相同的值,但在request.url工作时,更改request.path不起作用。 另外我不确定哪一个我必须再次testing。 当我与request.url交互时,事情就会起作用,但只是想确保我正确地做到了这一点。 有什么想法吗 ?

在授权的路线中使用express.static中间件

我正在使用express和passportjs节点来限制对位于私人文件夹中的文件的访问。 我已经减less了我的代码到以下。 公共静态文件夹中的所有内容都很好用,但是通过使用staticMiddleware来定位私有文件夹的路由将返回404错误。 var express = require('express') , util = require('util'); var app = express.createServer(); var staticMiddleware = express.static(__dirname + '/private'); app.configure(function() { app.use(app.router); app.use(express.logger('dev')); app.use('/public',express.static(__dirname + '/public')); }); app.get('/private/:file', function(req, res, next){ console.log('about to send restricted file '+ req.params.file); staticMiddleware(req, res, next); }); app.listen(16000); 我正在使用下面的引用,似乎为别人工作,所以我必须失去一些东西。 这对我而言不起作用,只显示位于私人区域的内容的404个响应。 Node.js模块特有的静态资源 即使使用express.static,NodeJS也不会提供静态文件 redirect到express.js中的静态文件 我可以发誓,我有这个工作之前,也许它被打破了一个新的东西版本。 节点v0.8.1 npm 1.1.12 express@2.5.11 […]

如何在调用responde.end()之后执行NodeJS / connect中间件?

我想实现这样的事情: var c = require('connect'); var app = c(); app.use("/api", function(req, res, next){ console.log("request filter 1"); next(); }); app.use("/api", function(req, res, next){ console.log("request filter 2"); next(); }); app.use("/api", function(req, res, next){ console.log("request handler"); res.end("hello"); next(); }); app.use("/api", function(req, res, next){ console.log("response post processor"); next(); }); app.listen(3000); 当我蜷缩的地址,我得到一个例外的控制台抱怨标题发送后不会被打扰,这是公平的。 只有我不接触响应对象。 /usr/bin/node app2.js request filter 1 request filter […]

错误:找不到模块“连接”

看来,这个简单的应用程序无法find'connect'模块后,我只是把它安装在文件目录中。 var connect = require ('connect'); connect.createServer(function(res, req, next) { res.simpleBody("Connect you son of a beeeeetch"); }).listen(8000); express@3.1.0 node_modules/express ├── methods@0.0.1 ├── fresh@0.1.0 ├── range-parser@0.0.4 ├── cookie-signature@0.0.1 ├── buffer-crc32@0.1.1 ├── cookie@0.0.5 ├── debug@0.7.2 ├── commander@0.6.1 ├── mkdirp@0.3.3 ├── send@0.1.0 (mime@1.2.6) └── connect@2.7.2 (pause@0.0.1, bytes@0.1.0, formidable@1.0.11, qs@0.5.1) Dzs-Mac-Attax-2:PlsWrk Dz$ node test.js module.js:340 throw err; ^ Error: […]