Tag: node.js

如何识别连接到套接字的两个用户,并将其join到一个房间? Socket.io

所以这里是情况,我需要为我们的数据库中存在的两个人创build一个空间。 问题是我不能根据他们的套接字来识别这些用户。 假设有两个随机用户user1和user2。 现在,用户1想要发起与用户2的聊天,所以当用户1发起并将两个用户join该房间时,我需要创build一个房间。 以下是套接字join房间的问题,并且socket.id随着来自同一主机的重新连接而改变。 所以,我不知道如何joinuser2到房间。 这是代码。 export default function(socketio) { let sockets = []; let people = {}; const findUserById = function findUserById(data) { for (let x in people) { if (people[x].userId === data) { return x; } } } /** * [createRoom Creates a room for two users] * @param {[type]} data1 [Mongoose […]

如何调用来自MongoDB的函数

这是我的robomongo文件 { "_id" : ObjectId("##########"), "actionname" : "testaction", "actiontype" : "database.action", "isshortworkflow" : true, "processstartedmessage" : "", "databaseUserName" : "####", "databasePassword" : "", "queryTemplate" : "Select * from shop where name=parameters.get("itemName")", "databaseType" : "MYSQL", "resultTemplate" : " parameters.get("itemName") + 'has quantity of' + result[0].get('quantity')" } 这里的queryTemplate字段是有name = parameres.get(“itemName”)。这是我的java代码中的一个本地函数,它将返回为“item1”。 问题是,因为它将来自mongo db,所以不会执行paramerters.get(“itemName”)函数。 有没有办法使用从mongodb返回的string执行该函数。如何在mongodb内部实现?

JavaScriptlogging对象而不在\ n上执行换行符

我有一个对象: class MyObject{ constructor(prop_a, prop_b, prop_c) { this.property_a = property_a; this.property_b = property_b; this.property_c = property_c; } const myObject = new MyObject(…data); 它在日志输出中看起来像这样: myObject { property_a:0001, property_b:somestringsandlettersthat\n havenewlines\n andmorenwelines\n andmorenwelines, property_c:someotherstuff } 但我想要这样的: myObject { property_a:0001, property_b:somestringsandlettersthat havenewlines andmorenwelines, andmorenwelines property_c:someotherstuff } 新行也应该在\ n不仅在新的属性上。 我使用的logging器是: https : //github.com/VeliovGroup/Meteor-logger 在console.log(myObject)中看起来更糟糕: myObject { property_a:0001, property_b:somestringsandlettersthat\n havenewlines\n andmorenwelines\n […]

Firebase的云端function – 移除最老的孩子

我有一个onWrite云function设置为侦听当用户更新的东西。 我想删除最大的孩子,如果有超过3,这是我在: exports.removeOld = functions.database.ref('/users/{uid}/media').onWrite(event => { const uid = event.params.uid if(event.data.numChildren() > 3) { //Remove Oldest child… } }) 每个孩子都有一个"timestamp"键。 { "users" : { "jKAWX7v9dSOsJtatyHHXPQ3MO193" : { "media" : { "-Kq2_NvqCXCg_ogVRvA" : { "date" : 1.501151203274347E9, "title" : "Something…" }, "-Kq2_V3t_kws3vlAt6B" : { "date" : 1.501151232526373E9, "title" : "Hello World.." } "-Kq2_V3t_kws3B6B" : { […]

我如何获得sys.extended_properties SQL在繁琐的js

我需要使用Tedius.js获取SQL Server 2008中的列的描述,但是当我运行查询时会抛出下一条消息: events.js:182 throw er; // Unhandled 'error' event Error: Unknown type: 0 这是代码: function executeStatement() { var query = `select sc.name as colum, sep.value as description from sys.tables st inner join sys.columns sc on st.object_id = sc.object_id left join sys.extended_properties sep on st.object_id = sep.major_id` request = new Request(query, function(err, rowCount) { if […]

dynamodb基于3列更新项目

我有一个custID和传感器作为我的主键和sorting键的表 custID sensor data date joe 123 wind 01/01/1901 mary 456 rain 01/02/1901 现在当一个新的logging如下所示 新行: joe, 123, temp, 01/04/1901 更新行: joe, 123, wind, 01/07/1901 我想input它作为一个新的行,但如果数据列匹配,我想更新行。 现在,如果我改变我的钥匙传感器和数据,这将工作,但我将如何做到这一点与当前的钥匙? 我的实际数据结构比这个复杂得多,但是我想保持简单。 var updateExpressions =[]; updateExpressions.push("#data"+counter+"=:data"+counter+", #date"+ counter +" = :date"+ counter); attrNames["#data"+ counter] = "data"; attValues[":data"+ counter] = data; attrNames["#date"+ counter] = "date"; attValues[":date"+ counter] = date; counter++; 然后在加载参数 […]

终止时弹性Beanstalk实例检测

我正在运行AWS Elastic Beanstalk Node.js应用程序,并希望每个EC2实例都能够检测到实例即将终止,以便它可以执行一些清理并释放任何资源。 有没有什么办法从Node.js这样的实例知道它即将被终止?

Webpackdynamic要求给出混合内容错误

我正在尝试Webpack的dynamic需求,把我需要的东西变成一个dynamic的模块,然后把代码分开。 import(`resources/assets/images/svg/${this.name}.svg`).then((module) => { this.svg = module; }).catch(error => 'An error occured while loading the svg'); 当承诺触发时,代码被注入页面并带有脚本标签。 脚本标记除了使用http而不是https 。 混合内容:“ https://test.app ”页面通过HTTPS加载,但请求一个不安全的脚本“ http://test.app/28.js ”。 此请求已被阻止; 内容必须通过HTTPS提供。 我如何确保我的dynamic需求使用https 。 这是我可以调整我的webpackconfiguration的设置? 更新: 它不是一个http或https问题,而是Webpack创build一个没有/前缀的脚本标记: <script type="text/javascript" charset="utf-8" async="" src="22.js"></script> 这导致脚本被parsing为: mywebpage.app/test/22js 虽然它实际上需要是: mywebpage.app/22.js 我不知道如何解决这个问题。

无法获取模块引用

我在尝试在某个文件中使用下划线模块时遇到了一个奇怪的错误,尽pipe我可以在同一个项目中的其他文件中使用它。 我认为这个问题和下划线模块本身没有关系。 文件的开头是以下内容: … var moment = require('moment'); var _ = require('underscore'); … 然后,当我尝试在函数中使用下划线时,出现错误 '‌ReferenceError: _ is not defined' 如果我尝试在同一个函数中使用其他模块,一切运作良好,而且,如果我在其他文件中使用下划线,它也可以正常工作,所以我不知道什么是错的。 我试图删除node_modules文件夹并运行npm更新,但问题仍然存在。 以下是文件夹结构,其中只包含相关的文件和文件夹: . ├── app.js ├── bower.json ├── default.json ├── lib │ ├── dbHelper.js ├── node_modules ├── routes │ ├── api.js 在api.js下划线工作正常,而在dbHelper.js不起作用。 有没有人遇到类似的问题? 有谁知道什么可能是错的,如何解决?

meteor文件缩略图链接

我正在按照这个教程, https://github.com/VeliovGroup/Meteor-Files/wiki/Image-Processing 我成功创build缩略图。 我成功地在集合中添加版本。 我想显示缩略图。 我现在的问题是如何获得<img>标签的链接? 对于原始图像,我使用了FilesCollection.link(fileRef) 。 我怎样才能在缩略图中做到这一点? 我正在使用Veliovmeteor文件包和GraphicMagick。