Articles of express

由于连接不再使用parseCookie方法,我们如何使用express来获取会话数据?

在node.js和express中,有很多例子展示了如何获取会话数据。 Node.js和Socket.io Express和Socket.io – 捆绑在一起 Socket.io和Session? 正如您在访问第三个链接时可以看到的那样,它是一个指向StackOverflow的链接。 有一个很好的答案,但正如在@UpTheCreek的评论中指出的,连接不再有parseCookie方法。 我也遇到了这个问题。 我find的所有教程都使用了connect的parseCookie方法,该方法现在不存在。 所以我问他怎么才能得到会话数据,他说他不知道最好的方法,所以我想我会在这里发布这个问题。 当使用express@3.0.0rc4 , socket.io和redis ,我们如何获取会话数据并使用它来授权用户? 我已经能够使用require('connect').utils.parseSignedCookie; ,但是当我这样做的时候,握手的时候总会得到一个警告/错误, warn – handshake error Error 从我读过的东西看来,这听起来不是一个永久的解决scheme。 UPDATE 好的我得到了session.socket.io在我的服务器上工作。 正如我怀疑的那样,我被困在授权的地步。 我想我可能会这样做是错误的,所以请随时纠正我。 在我的Redis数据库中,我将获得用户的信息。 他们第一次login时,我想更新他们的cookie,以便包含他们的用户信息。 然后下次他们回到网站,我想检查他们是否有一个cookie,如果用户信息在那里。 如果不在那里,我想把它们发送到login屏幕。 在login屏幕上,当用户提交信息时,会根据Redis数据库对该信息进行testing,如果匹配,则会使用用户信息更新cookie。 我的问题是这些: 1)如何通过RedisStore更新/更改cookie? 2)看起来会话数据只保存在cookie中。 如果有人closures了cookies,我怎样才能跟踪页面之间的用户信息? 这是我的适用代码: //…hiding unapplicable code… var redis = require('socket.io/node_modules/redis'); var client = redis.createClient(); var RedisStore = require('connect-redis')(express); var redis_store = […]

Node.js(使用express&bodyParser):无法从post请求中获取表单数据

我似乎无法恢复发送到我的Node.js服务器的发布请求的表单数据。 我已经把服务器代码和post请求(使用postman in chrome发送)放在下面: 发布请求 POST /api/login HTTP/1.1 Host: localhost:8080 Cache-Control: no-cache —-WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data; name="userName" jem —-WebKitFormBoundaryE19zNvXGzXaLvS5C NodeJS服务器代码 var express = require('express'); // call express var app = express(); // define our app using express var bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.use(bodyParser()); app.all('/*', function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Headers', 'Content-Type,accept,access_token,X-Requested-With'); […]

在Heroku上设置node.js服务器的端口

我使用以下行启动了一个node.js服务器来设置端口: app.set('port', process.env.PORT || 8080); 这意味着,它应该读取PORT envvariables或默认为8080,就像在本地运行一样。 在Heroku上它们都没有发生,服务器总是使用默认的端口80.任何想法如何改变它? heroku config PORT: 8080

快递 – 发送页面和自定义数据到一个单一的请求浏览器?

如何同时呈现一个页面并传输我的自定义数据到浏览器。 据我了解,它需要发送两层:首先与模板和第二与JSON数据。 我想通过骨干来处理这些数据。 正如我从教程express和bb app交互如下所示: res.render发送一个页面到浏览器 当document.ready触发jQuery.get到app.get('/post') app.get('/post', post.allPosts)发送数据到页面 这是三个步骤,如何做一个? var visitCard = { name: 'John Smit', phone: '+78503569987' }; exports.index = function(req, res, next){ res.render('index'); res.send({data: visitCard}); }; 而我应该如何捕捉page- document.card这个variables?

使用Jade来迭代JSON

我正在尝试使用JADE迭代JSON文档。 我的服务器(运行node.js + express)在.get()请求上执行以下操作, app.get('/search/', function(req,res){ // Parse the query var dbQuery = url.parse(req.url, true).query; var product = dbQuery.product; var category = dbQuery.category; console.log('Searching for: ' + product + ' in ' + category); //Mongo DB setup then query var result; var server = new mongodb.Server('23.23.129.158', 27017, {}); new mongodb.Db('militaryListDB', server, {}).open(function(err, client){ if(err) throw […]

如何发送来自node.js Express的POST请求?

有人可以告诉我从node.js Express发送post请求的最简单方法,包括如何传递和检索一些数据? 我期待类似于PHP中的cURL。

在启动应用程序时validation与pg-promise的数据库连接

我正在构build一个使用pg-promise模块连接到postgres数据库的快速应用程序。 我想确保启动应用程序服务器时数据库连接成功。 换句话说,如果连接到数据库失败,我想抛出一个错误。 我的server.js文件如下: const express = require("express"); const databaseConfig= { "host": "localhost", "port": 5432, "database": "library_app", "user": "postgres" }; const pgp = require("pg-promise")({}); const db = pgp(databaseConfig); const app = express(); const port = 5000; app.listen(port, (err) => { console.log(`running server on port: ${port}`); }); 无论数据库连接是否有效,当前的configuration都将启动快速服务器,这不是我想要的行为。 我尝试浏览文档,但找不到解决scheme。 我也试过const db = pgp(databaseConfig).catch((err) => { // […]

Node.js express.json中间件不按预期parsing请求

我有一个简单的cURL(我认为这是正确的),发布一个小的JSON对象到我的快递服务器: curl -d "{'test': 'this'}" localhost:3000/rest/user/authenticate 我有明确的设置为: // set up body parsing in express to be able to get parse JSON posts server.use(express.json()); server.use(express.urlencoded()); 并有接受路由的处理程序: JSON = require('JSON') module.exports = { authenticateUser: function create(req, res){ var postedObject = req.body console.log(postedObject) res.send('Handle Post: authenticateUser'); } } 该处理程序正在调用,但它意外地loggingJSON正文: { '{\'test\': \'this\'}': '' } 所以我的整个对象看起来是JSON名称:值对对象的名称端。 无论我发布什么,似乎都是追加价值的一面。 除非我做这样的事情: curl […]

Express 3.0 req.flash?

– 编辑 – 我写了一些middlware来做到这一点: https ://npmjs.org/package/flashify 因此,自从Express 3.0发布以来,这些更改已经消除了req.flash() https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x (来源) 所以现在是我的问题。 他们build议在本地使用req.session.messages来显示flash。 因此,为了使视图可以访问会话,我们必须执行以下操作: NB:在咖啡剧本 app.locals.use (req,res) -> res.locals.session = req.session 我们如何从视图访问会话数据,然后清除它? 视图渲染后,我们无法清除会话的内容,但我们无法清除它,因为它不会达到视图,所以我有点失落,以至于如何解决这个问题?

开源Node.js(和Express)项目

什么开源的Node.js(和Express)项目在那里? 如果使用CoffeeScript,那也是一个巨大的优势。 我需要一些启发。