Articles of express

Mean.js req.isAuthenticated显示失败?

我已经下载meanjs version@0.1.12.here我已经使用两台服务器的前端我hvae使用angular的离子它在localhost运行:3000,后端我用meanjs.in意思是我已经创build了注册,login和文章。当我使用meansjs作为后端和前端它工作正常。但是当我连接到另一台服务器(本地主机:3000)注册和login工作正常,但是当我正在创build文章我越来越401非法bcoz该req .isAuthenticated()函数。当我创build文章模块req.isAuthenticated()得到fail.req.isAuthenticated()我dono我应该通过这个函数我已经包括我的代码任何人帮助我 现在我正在传递这样的数据 $http.post('http://192.168.1.14:3000/articles', credentials).success(function(response,data,errorResponse) { // If successful we assign the response to the global user model //$scope.authentication.user =response; console.log(response); console.log(data); // And redirect to the index page $location.path('/tab/account'); }, function(response,data,errorResponse) { $scope.error = errorResponse.data.message; console.log($scope.error); console.log(data); }); 路线: app.route('/articles') .get(users.requiresLogin,articles.list) .post(users.requiresLogin,articles.create); login检查 /** * Require login routing middleware */ exports.requiresLogin = function(req, […]

解压缩文件不起作用

我使用下面的代码 https://github.com/cthackers/adm-zip/wiki/ADM-ZIP-Introduction Whant我需要的是从请求获取一个zip文件(即时通讯使用快递 ,我已经请求和响应),我需要提取(解压缩)到一些path(在本地驱动器的示例中),我应该在哪里放置请求和我在这里失踪,使其工作 fn: function (req, res) { var admZip = require('adm-zip'); var zip = new admZip(); zip.addLocalFile("C://TestFolder//TestZip"); 在请求正文即时获取压缩文件(即时通讯使用邮递员和身体我使用二进制,并select一个zip文件)

“使用Node.js进行直接响应” – 使用不同的Node.js进程发送HTTP响应(与主进程不同)

使用Node.js服务器,我想知道是否可能,并build议发送来自委托工作进程,而不是主进程的HTTP响应。 这些工作进程可以是Node.js服务器本身,也可以是通过IPC进行通信的Node.jssubprocess。 我不认为集群核心模块https://nodejs.org/api/cluster.html可以做我想做的事情,因为在该模型中,所有的工作人员都在同一个端口上侦听,并且他们处理所有的请求代表主人的过程。 我正在寻找的是一个主要的Node.js进程,它响应所有的HTTP请求,可能会进行身份validation并处理一些请求,但也能够将数据密集型或CPU密集型请求委托给工作池。 想象一下,我们对大量的数据有一个GET请求,比如2-3MBs。 我们至less有三种可能的情况: 主进程接收到请求,向数据库请求大量的数据,然后将数据发送回请求者。 主进程接收到请求后,使用IPC将一些数据发送给工作进程,工作人员从数据库获取数据做了一些繁重的操作,然后工作人员使用IPC将所有3MB的数据全部发送回主进程,然后发送回应。 主进程接收请求,向工作人员发送尽可能less的关于请求stream的信息,工作人员完成所有工作,工作人员发回HTTP响应。 我特别好奇#3可能。 情景3的简单描述如下: (要明确一点,我不想要一个请求的三个响应,我只是想表明一个工作人员可能代表主进程发送响应)。 任何人都知道这可能与Node.js工作? 它如何在其他语言中起作用? 通常,我对Node.js并发模型没有任何问题,但对于某些types的数据,使用Cluster模块可能不是实现最高并发性的最佳方式。 我相信这个模型的一个术语是“直接回应”,意思是工作人员直接回应请求。 也许可以简单地使用集群核心模块https://nodejs.org/api/cluster.html 。

如何添加login身份validation和会话到ReactJS React路由器和Redux与MongoDB + NodeJS Express?

我有一个MongoDB + NodeJS Express服务器,运行Webpack并能够向数据库注册一个用户凭证。 我现在想在用户login时添加身份validation和会话。我正在查看Passport.js但似乎无法掌握如何将所有可以放在一起。 最好的办法是什么? 任何示例和指导将不胜感激。 到目前为止,这些都是我设立的。 对于服务器: var express = require('express'); var path = require('path'); var config = require('../webpack.config.js'); var webpack = require('webpack'); var webpackDevMiddleware = require('webpack-dev-middleware'); var webpackHotMiddleware = require('webpack-hot-middleware'); var bodyParser = require('body-parser'); var MongoClient = require('mongodb').MongoClient; var ObjectId = require('mongodb').ObjectID; var app = express(); var db; var compiler = webpack(config); […]

Express.js服务器端渲染 – 请求'/ json / version /

我有一个快速服务器运行,以预渲染我的反应的应用程序。 我有一个路线文件,匹配的HomeContainer基地的路线/和所有其他路线匹配找不到页面。 import HomeContainer from 'containers/home-container/home-container'; import PageNotFound from 'components/page-not-found/page-not-found'; const routes = [ { path: '/', exact: true, component: HomeContainer }, { path: '*', component: PageNotFound } ]; export default routes; 我遇到的问题是,当我在服务器上运行应用程序时,页面未find路由获取呈现之前,快速更改为HomeContainer路线。 我已经发现,这是因为我的快递服务器向/json/version发出请求,然后向/发送请求,此路由与我的路由文件中的路由不匹配,因此未find页面组件。 现在我没有得到的是为什么它正在提出这个请求,以及如何停止在home容器之前page not found组件。 我试过debugging节点服务器和最早的地方,我可以find这个path被引用是在一个名为_http_server.js 以下是debugging器的屏幕截图,以及我在哪里find正在引用的URL。 另外作为参考,我已经包括我的快递服务器下面。 import express from 'express'; import React from 'react'; import { renderToString } from 'react-dom/server'; import […]

使用Express.js v4和Socket.io v1进行会话

如何在express.js中保存会话数据并在socket.io事件中访问它? 我正在使用express.js v4 , socket.io v1和基本的快速会话中间件来开发web应用程序。 我花了几个小时试图解决这个问题,但堆栈溢出的所有当前答案只适用于expressionv3和socket.io v0.9。 不幸的是,我不能使用express.io,因为它只是一个使用这些旧版本的包装器。 我目前的解决scheme是彻底的黑客攻击 app.get('/auth', function(req, res) { if(verified(req.query)) { authed[req.sessionID] = true; } }); io.sockets.on('connection', function(websocket) { var cookies = cookie.parse(websocket.handshake.headers.cookie); var decrypted = cookieParser.signedCookies(cookies, random); var sessionID = decrypted['connect.sid']; websocket.on('input', function(input) { if(authed[sessionID]) { // Do stuff… } }); }); 我将基于会话ID的“会话数据”保存在对象中作为键/值存储区。 这对于单个进程应用程序来说工作得很好,但它确实不是一个好的解决scheme。 它实际上并没有给我访问保存在req.session中的任何东西,如果过程结束,我保存的所有数据都将丢失。 最重要的是,我需要加载第三方的cookie包来parsing来自socket.io的cookiestring。 似乎新版本的Cookieparsing器没有使用它的函数来parsingstring中的cookie。 至less,没有logging。 有一个更好的方法! […]

LTI使用Node.js启动身份validation

我使用express.js框架创build了一个简单的“hello-world”web应用程序。 我希望应用程序符合IMS-LTI标准,以便moodle和其他学习pipe理系统可以将其作为外部工具启动。 但是,我不明白如何在我的应用程序(它使用oauth)来validationLTI启动,而且我也找不到任何express.js / node.js的例子。 我发现存在passport-lti节点模块( https://www.npmjs.org/package/passport-lti ),但作为节点的noob只是不理解稀疏的文档。 我已经使用passport.js创build本地身份validation – 使用此video( https://www.youtube.com/watch?v=twav6O53zIQ ),我希望为LTI启动身份validation类似的帮助… 任何帮助表示赞赏。 干杯,奥利

Node.js服务器超时问题(EC2 + Express + PM2)

我相对较新的运行生产node.js应用程序,我最近有问题,我的服务器超时。 基本上在一定的使用和时间后,我的node.js应用程序停止响应请求。 我甚至不再看到路由器在我的控制台上被触发 – 就像整个事情刚刚停止,来自客户端(运行AFNetworking的iPhone)的HTTP呼叫不再到达服务器。 但是,如果我重新启动我的node.js应用程序服务器,一切都会重新开始,直到事情不可避免地再次停止。 该应用程序从不崩溃,它只是停止响应请求。 我没有得到任何错误,我已经确保处理和logging所有数据库连接错误,所以我不知道从哪里开始。 我认为这可能与内存泄漏有关,所以我安装了node-memwatch并为内存泄漏build立了一个侦听器,但是在我的服务器停止响应请求之前,这个侦听器没有被调用。 任何线索可能会发生什么以及我如何解决这个问题? 这是我的堆栈: AWS EC2 Micro Instance上的Node.js(使用Express 4.0 + PM2) 运行MySQL的AWS RDS卷上的数据库(使用node-mysql) 与node.js应用程序在同一个EC2实例上存储了与Redis相同的会话 客户端是通过AFNetworking访问服务器的iPhone 上面提到的任何一个模块都没有发生错误。

如何通过Angular,Express和Mongoose执行请求放置?

一个朋友和我正在试图弄清楚在这个代码中,教程产生了什么。 我们关心的是客户机/服务器的stream程是factory.js的第8行: factory.js app.factory('postFactory', ['$http', function($http) { var o = { posts: [] }; o.upvote = function(post){ return $http.put('/posts/' + post._id + "/upvote").success(function(data){ post.upvotes += 1; }); }; return o; }]); MongoosePost.js var mongoose = require('mongoose'); var PostSchema = new mongoose.Schema({ title: String, url: String, upvotes: {type: Number, default: 0}, comments: [{type: mongoose.Schema.Types.ObjectId, ref: 'Comment' […]

在Redis上共享一个Django和Express.js应用程序的会话存储

我想用一些login用户创build一个Django应用程序。 另一方面,因为我想要一些实时function,我想使用Express.js应用程序。 现在的问题是,我不想让不可识别的用户访问Express.js应用程序的数据。 所以我必须在Express.js和Django应用程序之间共享会话存储。 我认为使用Redis将是一个好主意,因为volatile键是完美的,我已经使用Redis作为应用程序的另一部分。 在Express.js应用程序中,我会有这样的代码: […] this.sessionStore = new RedisStore; this.use(express.session({ // Private crypting key secret: 'keyboard cat', // I'm worried about this for session sharing store: this.sessionStore, cookie: { maxAge: 1800000 } })) […] 在Django方面,我会考虑使用django–redis会话应用程序。 那么,这是一个好主意吗? 会不会有问题? 特别是关于密钥,我不确定他们是否会共享同一个会话。