Tag: express

重复密钥错误索引Mongoose

我试图简单地创build多个对象与空数组。 不幸的是,当我想要创build多个这样的元素时,会出现错误消息。 这是我的对象模式: var groupSchema = mongoose.Schema({ id: mongoose.Schema.ObjectId, name: { type: String, required: true }, section: { type: mongoose.Schema.ObjectId, ref:"Section", childPath:"groups" }, users: [ {type : mongoose.Schema.ObjectId, ref : 'User', childPath: "groups"} ], invitations: [{ _id:false, email: { type: String, required: true }, isRegistered: { type: Boolean, required: true } }], }); 简单的创buildfunction: //Create […]

JSON嵌套对象与node.js中的BodyParserparsing

我有一个node.js服务器接收这个JSON对象作为put: { stats = { abdominal=0, bicep=0, deltoids=0, erector_spinae=0, gastro_soleus=0, gluteus=0, hamstrings=0, lat_dor_rhom=0, obliques=0, pectoralis=0, quadriceps=0, trapezius=0, triceps=0 }, name=Name, _id=userid, level=1, experience=200 } 我使用这段代码尝试访问数据: user.name = req.body.name; user.level = req.body.level; user.experience = req.body.experience; user.stats = { abdominal: req.body.stats["abdominal"], bicep: req.body.stats["bicep"], deltoids: req.body.stats["deltoids"], erector_spinae: req.body.stats["erector_spinae"], gastro_soleus: req.body.stats["gastro_soleus"], gluteus: req.body.stats["gluteus"], hamstrings: req.body.stats["hamstrings"], lat_dor_rhom: req.body.stats["lat_dor_rhom"], obliques: req.body.stats["obliques"], […]

使用Express时出现“错误:套接字挂断”

当客户端刷新的同时仍然加载一个页面(所以套接字被终止,而我仍在处理请求)时,节点继续退出。 错误: [ERROR] – Error: socket hang up at createHangUpError (http.js:1472:15) at Socket.socketCloseListener (http.js:1522:23) at Socket.EventEmitter.emit (events.js:95:17) at TCP.close (net.js:465:12) (at lib/Maintenance.js:38) 我试着附加on('error', …到: req对象 listen的返回值(我正在使用Express) 我的get , use和post方法的返回值。 然而,我似乎无法捕捉到这个错误。 它仍然被抛出,没有我的error handling程序反应。 我可能会错过什么?

在node.js多人游戏html5游戏中越来越高的延迟

我使用node.js创build了一个网页,表示js,socket.io和jquery。 这是一个简单的游戏,玩家join,给自己一个名字,然后在页面上的一个canvas上移动自己(一个正方形)。 我注意到的是:当有更多的人join游戏并且四处走动的时候,有足够的时间让游戏变得无法玩(只有三个人连接在一起,两个人并没有太大的差距)。 我无法弄清楚这是服务器端延迟还是客户端(这是我第一个处理多人游戏的项目)。 我正在做服务器上的所有位置计算,并将所有玩家对象的数组发送回每个套接字,以便每个客户端可以渲染所有玩家。 客户端只发送input并绘制玩家。 这是游戏的客户端脚本。 这是我处理input和渲染的地方。 $(document).ready(function() { var socket = io.connect(); var canvas = document.getElementById("canvas_html"); var ctx = canvas.getContext("2d"); canvas.width = 512; canvas.height = 480; document.body.appendChild(canvas); var player = { id: '', is_it: false, x: canvas.width / 2, y: canvas.height / 2, velx: 0, vely: 0 } //tell the server to initialize […]

如何在Parse.com上手动提供文件?

我已经使用前端框架部署了一个单页面应用程序到我的Parse托pipe。 然而,这里有一个很大的问题:子path被路由到/public文件夹,只有一个index.html和一堆资产。 我已经尝试了通过所有其他路由服务该静态索引文件的许多选项,通过在cloud/main.js使用Express或HTTP ,但似乎Parse运行自定义子节点模块。 他们已经擦除了所有的文件系统方法。 在Express API上没有sendFile() ,在fs模块上没有readFile() … 我能做些什么来达到? 我只需要不在public文件夹中的所有path来提供相同的东西:我的index.html文件。 我已经尝试过了: 阅读文件并提供它: app.use(function(req, res) { fs.readFile('../public/index.html', 'utf8' , function(err, data) { if (err) { console.error(err); } res.send(data); }); }); 作为Express Middleware服务(可能是最有效的方式): app.use(function(req, res) { res.sendFile('../public/index.html'); }); 将其作为一条全面的路线: app.get('*', function(req, res) { res.sendfile('../public/index.html'); });

将node.js服务器端控制器的variables传递给angular.js客户端控制器

在express.js中,当你将控制器传递一个值来查看时,使用在控制器中设置的jade(默认为express) response.render('templatename',{name:'Peter'}); 所以你可以在视图上回显它: #{name} 在Angular.js中,你把想要显示的值放在$ scope var,$ scope.name =“Peter”,并在视图上回显为:{{name}}所以,也许我不能回显node.js直接转angular度。 那么有一种方法可以将node.js中的值回显到一个用作angular.js控制器的js文件中? 我的目标是从node.js服务器端控制器传递值到angular.js客户端控制器 谢谢!

在快速/节点响应中将Blob缓冲区渲染为PDF

非常奇怪,我从我的SQL Server中抽取我的blob数据,然后将其返回到我的Express服务器。 然后我想把它作为一个PDF文件发送到我的res.send()。 但即时通讯一个很大的混乱pdf。 它具有正确数量的页面,但不是呈现PDF,而是PDF中的一串随机线和正方形。 奇怪的部分是做到这一点在一个简单的快速服务器上完全相同的方式工作100%,但试图实现这与我的生产应用程序,用Yeoman fullstack生成,我现在得到这个不受欢迎的结果。 什么是最好的方式来呈现我的数组缓冲区的PDF并将其显示为一个PDF文件的水库? 谢谢 我目前的代码(这是基本的Express服务器的工作方法) res.setHeader('Content-type', 'application/pdf'); res.send(recordset[0].ordaAttachment); recordset [0] .ordaAttachment只是以下格式的PDF缓冲区。 (这只是一个例子而不是真正的PDF) {"type":"Buffer","data":[37,80,68,70,45,49,46,51,13,37,226,227,207,211,13,13,49,32,48,32,111,98]}

PassportJSauthentication和mongodb数据库收集最佳实践?

我正在一个项目中工作,实际上是第一次使用nodejs,express和mongodb。 对于我使用passport.js的身份validation,它看起来非常灵活,易于集成。 我真的很喜欢序列化和反序列化的想法,但我关心的是用户对象,它永远是开的,可以用于每个请求。 我的项目涉及订阅,用户configuration文件,也许是一个小的打勾的系统。 所以我的用户架构,它包含用户凭据,用户信息,如地址,电话,电子邮件,还有关于订阅的信息。 这些信息中的一部分是embedded在相同模式下的文档。 这似乎很奇怪,所有这些信息总是准备好,即使我不需要,甚至bcrypt密码始终在请求调用。 我的问题是,你认为最好的做法是将用户凭证从用户对象中分离出来,并与关系玩,所以当我用正常的控制器模型的方式需要时,可以调用用户信息? 提前致谢

Express JS res.redirect是未定义的

我按照这个教程如何使用MEAN堆栈中的passport-facebook,当我尝试使用res.redirect('/signup')我得到了这个错误我总是得到这个错误: ReferenceError: res is not defined 好像我没有通过res作为我的函数参数。 我尝试在第二个/最后一个参数中添加它。 但没有任何工作。 我错过了什么? 这是我的代码: exports.saveOAuthUserProfile = function(req, profile, done){ User.findOne({ provider: profile.provider, providerId: profile.providerId, }, function(err, user) { if (err) { return done(err); } else { if (!user) { // console.log(profile.email.value); var possibleUsername = profile.username || ((profile.email) ? profile.email.value.split('@')[0] : ''); User.findUniqueUsername(possibleUsername, null, function(availableUsername){ profile.username = availableUsername; user […]

如何使用Express和oAuth2让用户在Angular的多个设备上login?

我试图让用户login到多个设备相同的用户名。 在后端,我们使用oAuth2 JWT令牌通过oauth2orize npm包使用node / express rest api。 目前,我们的后端身份validation工作的方式是用户login,发送一个JWT令牌和一个JWT刷新令牌。 当用户注销时,令牌无效。 我们遇到的问题是用户将在一台计算机上login,然后login到另一台计算机上的相同帐户。 当第二次login发生时,给用户一个新的令牌和刷新令牌。 现在,当用户返回第一台计算机时,刷新令牌无效,导致用户退出。 一个解决办法是我们试图坚持sessionId在一个cookie,但Angular似乎返回一个新的sessionId每个请求。 以下是请求的一个例子。 — session — l3s-kZCEUaz8TYhElVtARIwbl6PKTm_o { cookie: { path: '/', _expires: Fri Aug 05 2016 00:23:44 GMT+0000 (UTC), originalMaxAge: 31449600000, httpOnly: true } } — session — hN961RAc2YSlmzngr3R6zXuJnp4cFF_P { cookie: { path: '/', _expires: Fri Aug 05 2016 00:23:46 GMT+0000 (UTC), […]