Tag: 快递

无法在Layer.session – ExpressJS会话中读取未定义的属性“connect.sid”

在ExpressJS 4中使用会话时遇到问题。 我曾尝试在server.js(我设置我的应用程序的configuration)和routes.js(我定义我的路线)中添加会话。 这是我一直得到的: TypeError: Cannot read property 'connect.sid' of undefined at Layer.session [as handle] (/Users/larissaleite/Documents/Routing/node_modules/express-session/index.js:115:32) at trim_prefix (/Users/larissaleite/Documents/Routing/node_modules/express/lib/router/index.js:226:17) at c (/Users/larissaleite/Documents/Routing/node_modules/express/lib/router/index.js:198:9) at Function.proto.process_params (/Users/larissaleite/Documents/Routing/node_modules/express/lib/router/index.js:251:12) at next (/Users/larissaleite/Documents/Routing/node_modules/express/lib/router/index.js:189:19) at Layer.expressInit [as handle] (/Users/larissaleite/Documents/Routing/node_modules/express/lib/middleware/init.js:23:5) at trim_prefix (/Users/larissaleite/Documents/Routing/node_modules/express/lib/router/index.js:226:17) at c (/Users/larissaleite/Documents/Routing/node_modules/express/lib/router/index.js:198:9) at Function.proto.process_params (/Users/larissaleite/Documents/Routing/node_modules/express/lib/router/index.js:251:12) at next (/Users/larissaleite/Documents/Routing/node_modules/express/lib/router/index.js:189:19) 我这样定义会话(server.js): var express = require('express'); var app = express(); // […]

强制share.js使用相同的快速会话数据

我有一个简单的express应用程序,使用session中间件和passport-local中间件。 然后我使用share.js和browserchannel通过share.listen(stream)将数据传输到服务器。 全部与这里的文档保持一致。 我的问题是,我不能访问stream中的会话数据(由passport-local修改,并包含login的用户ID)。 我需要它能够限制/授予client.on('message',function(data){..})中的访问权限。 基于一些逻辑,但首先重要的是检查消息来自login用户。 在那里,如果我尝试读取ID,它将与req.user._id中的什么有所不同。 似乎有share.js或browserchannel使用一些不同的会话,也许?.. 代码如下: var app = express(); var express = require('express'); … // SETUP AND INIT app.use(cookieParser()); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true, limit: 1024 * 1024 * 10 })); app.use(methodOverride()); app.use(session({ secret: global.CONFIG.session.secret, maxAge: new Date(Date.now() + 1000 * 60 * 60 * 24 * 2), store: new MongoStore(global.CONFIG.mongo), resave: […]

如果函数不使用任何I / O,NodeJSasynchronous函数的目的是什么?

查看NodeJS bcrypt包( https://www.npmjs.com/package/bcrypt ),似乎有一对async / syncfunction: genSalt / genSaltSync 散列/ hashSync 比较/ compareSync 我了解asynchronous函数的用途,在函数具有I / O(如磁盘或networking访问)的情况下,以免阻塞事件循环。 但是,像上面这样的情况下,没有I / O的情况下,使用asynchronous版本有什么优势? select同步版本会损失什么? 我想这样做,因为它使更简单的代码,我看不出有任何缺点。 在https://stackoverflow.com/a/11606391/779159中,它表示“如果可能的话,您希望使用asynchronous版本,这样您就不会在密码散列期间占用您的节点处理”,但是您的代码不会无论如何,因为这些function使用的是CPU,而不是I / O,所以会受到阻碍吗?

从节点(服务器到服务器)Node / Express使用请求中获取来自Restful API的数据

我试图连接到位于这里的TradeGecko API :(他们所有的例子都是在ruby – 我使用节点) http://developer.tradegecko.com/ 我有一个特权访问令牌,我创build了FAKE TOKEN:146e29b59e7e8861f462101f610f58168ca5edf2f307e5f7adc3314d24ee8015 如何获得所有产品的GET请求,例如: http : //developer.tradegecko.com/?ruby#list- all-products 非常感谢帮助! 假设我有这样的代码: var express = require('express'); var request = require('request'); var app = express(); var port = process.env.PORT || 3000; var testRouter = express.Router(); myRouter.route('/testRoute') .get(function(req, res){ request('API CALL HERE??', function (error, response, body){ if(!error && response.statusCode == 200){ res.json(body); } }) […]

Node.js,express,护照authentication“Bad Request”

我正在使用Cloud 9来build立一个基本的社交媒体网站,并且在注册和用户身份validation方面遇到困难。 我正在使用Node.js,express和passport进行身份validation,并使用mongoDB作为数据库。 // PASSPORT Setup // app.use(require("express-session")({ secret: "I am the best", resave: false, saveUninitialized: false })); app.use(passport.initialize()); app.use(passport.session()); passport.use(new LocalStrategy(User.authenticate())); passport.serializeUser(User.serializeUser()); passport.deserializeUser(User.deserializeUser()); // INDEX Page app.get("/", function(req, res) { res.render("landing-page"); }); // REGISTER NEW app.get("/register", function(req, res) { res.render("user/register"); }); // REGISTER CREATE app.post("/register", function(req, res) { var user = req.body.user; var newUser […]

基于Mailchimp合并标签创build独特的页面

:) 所以,我想发一封电子邮件(广告系列)和一篇文章的预览,然后我想提供一个链接,用户可以在网站上阅读完整的文章。 在侧边栏上,我想向用户显示他们订阅了哪些通讯列表(并且未订阅),以便他们可以根据需要轻松调整其设置。 一旦我有用户在网页上,我的网站知道他们的电子邮件地址或它的MD5散列。 我可以使用哈希与MailChimp API(v3)进行交互,以便从各种列表中订阅和取消订阅,但是我怎样才能将他们的信息放到我的网站上呢? 如果我使用| EMAIL | 合并标签在“阅读全文”链接,我把他们的纯文本电子邮件在URL的查询string。 | UNIQID | 也许? 我不明白它在3.0 API中的作用。 附注:我知道共享这个页面的用户,如果查询string包含一个识别用户的方法,他们向朋友展示改变他们设置的能力。 我也不知道如何避免这种情况。 也许redirect是最好的? 对不起,我还没有代码。

使用req.login()刷新passport.js会话数据

我正在使用passport.js。 问题是当我更改用户名称等用户信息时,直到用户重新login才更改。 如果用户注销并再次login,则信息已更改。 但我想在不重新login的情况下更改会话。 我的反序列化用户函数如下所示,它看起来不同的原始护照的例子,因为它是从会议拾取数据,而不是查询数据库。 我想加载速度,所以我没有使用反序列化函数的数据库查询。 passport.deserializeUser(function(userSession, done){ var member = { id : userSession[0], name : userSession[1] }; done(null, member); }); 所以我想我必须像下面那样使用req.login() ,但会话不会改变。 Members.findOne({_id : someId }, function(err, member){ member[username] = req.body.username; member.save(function (err){ if(err) return next(); console.log('The original session :'+req.sessionId); req.login(req.user, {}, function(err){ if (err) return next(); console.log('The new session :'+req.sessionId); res.send(200); }); […]

如何debugging护照

我不能为了我的生活似乎弄清楚如何debugging护照战略。 我只是在概念上做了一些可怕的错误? 我一直在这里b了我大概10个小时,还没有接近一点。 这是我第一次使用护照。 在这个特定的场景中,我正在使用passport-jwt。 我知道对象键是不正确的,但我只是想通过使用console.log()跟踪通过服务器的path,所以我明白事情是如何工作的。 我甚至没有达到passport.use( new JwtStrategy(..)) 。 我遗漏了不必要的代码。 连接到我的mongodb是好的,我的mongoose模式是好的。 我正在testing使用testing路线server.get('/fakelogin', …)做一个请求 – 承诺POST到/api/login 。 我也尝试使用curl -X POST并修改发布path到url查询参数。 我只是不断得到一个“未经授权”的错误,没有护照战略代码console.log有史以来就开始。 服务器 var server = express(); server.use(passport.initialize()); let opts = { jwtFromRequest: ExtractJwt.fromBodyField('token'), secretOrKey: config.apiKey, algorithms: [ 'HS256', 'HS384' ], ignoreExpiration: true }; passport.use(new JwtStrategy(opts, function( jwt_payload, done ) { // mongoose users query against […]

如何获取服务器的IP地址在nodejs中发送邮件

我正在使用nodemailer在nodejs中发送邮件。 我正在embedded超链接到mailbody它工作正常。 我的示例mailbody在下面 `This is confirmation mail.\n please click below link to login http://${req.headers.host}/login\n\n \n` 观察场景,如果我打开我的页面作为localhost:port它是发送邮件与localhost:port当我打开Ipaddress:port然后它与Ipaddress:port发送。 这里来了我的问题,我成功的邮件,现在我打开我的邮件在另一个系统,并从那里我点击链接,然后得到server can't be reached. 这是非常直接的,因为服务器正在另一台机器上运行,但我试图在与locahost不同的机器上打开。 那么我怎样才能发送邮件服务器的IP地址。 我也看到关于server.address().address但如何使用我感到困惑。

NodeJS,分配名称/获取Jadecheckbox的值

我从Mongo数据库的表单中填充表格。 我希望用户能够select一个或多个checkbox,然后确定从表格中select了哪些项目。 问题的一个部分是,我不知道如何命名checkbox,因为它们是dynamic创build的。 我也不知道如何阅读checkbox属性。 我正在使用ExpressJS和翡翠。 我可以填充表没有问题,但不知道如何沟通哪些项目被选中。 这是我的玉 h1 index view form (method='post', action='/customers/check') fieldset legend Add a Customer div.clearfix -if(docs.length) table(style="border-left:1px solid black") tr th First Name th Last Name th "Hidden" each first in docs tr td #{first.first} td #{first.surname} td #{first.group} td div.input input(type="checkbox", name=(#{first.box}), unchecked= (true===true ? "checked" : "")).checkbox div.actions input(type='submit', […]