socket.io手动添加用户到空间(node.js)

我有一个私人工作的聊天应用程序。我的实现是: 1 – 用户进入另一个用户configuration文件页面并写入消息。 在此之后,我为这个对话创造了一个空间。 socket.join(data.user); 2 – 接收者用户将采取这个消息(只有这个用户),但我不知道我怎么可以join这个接收机用户到这个房间。 所以这是我的问题基本上。 我需要添加“手动”这个接收机用户到我的房间。 这样当我把消息广播到这个房间的时候,消息就会发出这两个用户(一个是匿名的,另一个是注册用户)。 它会提供我的一些代码。 server .on('connection', function(socket) { server.to(socket.id).emit('yourSocketId',{ socketid : socket.id,connectedDate : Date.now }); socket.on('AnonymousMessage', function(data) { if(data.isanon == true) { socket.join(data.user); server.to(data.user).emit('AnonymousBroadcast', { message: data.message, user: data.user, isanon : data.isanon, date : data.date, tabno : data.tabno }); } else { socket.join(****); //– I need […]

Bookshelf.js设置属性不在数据库中

我有一个Bookshelf.js模型。 我希望能够设置和获取该数据库中不存在的模型的属性。 例如让我说我有一个模型,看起来像这样: var Domain = bookshelf.Model.extend({ tableName: 'domains', initialize: function() { this.on('creating', this.setDomainName); }, setDomainName: function() { this.set('name', getDomainFromUrl(this.url)); } }); 使用如下所示的架构: knex.schema.createTable('domains', function (table) { table.increments().index(); table.text('name').index(); table.timestamps(); }); 我希望能够保存一个叫做url的属性,然后在保存之前parsing这个url到一个域中。 当我尝试这样的事情: new Domain({url: 'http://someurl.com/foo/bar'}).save() 我收到错误消息: "column \"url\" of relation \"domains\" does not exist" 我看了看。 我无法find任何方式将非持久属性添加到bookhelf.js模型。 我也找不到有关将自定义getter和setter方法添加到bookhelf.js模型的任何信息。 任何帮助或见解,表示赞赏!

给予模块错误的gulp命令找不到

我正试图在Windows上设置基本的aurelia应用程序。 我遵循了http://aurelia.io/get-started.html的说明 ,其中包括: 安装节点js 安装使用: npm install -g gulp 通过使用安装jspn: npm install -g jspm 然后从https://github.com/aurelia/skeleton-navigation/releases下载示例源代码到项目文件夹。 打开一个控制台,并改为项目目录即。 导航应用 执行命令: npm install 执行命令: jspm install -y 最后用命令: gulp watch启动服务器 以上所有步骤都成功完成,除了第8步,这是一个错误: E:\aurelia\navigation-app>gulp watch module.js:338 throw err; ^ Error: Cannot find module 'debug/node' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:278:25) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (E:\aurelia\navigation-app\node_modules\gulp-babel\nod e_modules\babel-core\lib\babel\util.js:22:34) […]

npm仍然安装软件包到'/ usr / local / Cellar / node / …',尽pipe我已经卸载了Homebrew的版本节点

这是一个漫长的夜晚。 最初我从https://nodejs.org/上的软件包安装了节点。 然而,由于某种原因(我不记得为什么了),我决定尝试卸载,然后通过Homebrew安装节点。 一切似乎都很好。 然后我跑了以下几点: $ npm install grunt -g $ npm install grunt-cli -g 但是当我尝试运行我的任何Grunt任务时,我得到以下内容: $ cd /some/project/that/used/grunt $ grunt -bash: grunt: command not found 我试着卸载节点的Homebrew版本: $ brew uninstall node 然后我再次安装了nodejs.org包。 但是,当我尝试安装npm软件包时,它将返回到/usr/local/Cellar/node/…目录中: $ sudo npm install grunt -g Password: grunt@0.4.5 /usr/local/Cellar/node/0.12.2_1/libexec/npm/lib/node_modules/grunt ├── which@1.0.9 … 我也发现https://github.com/Homebrew/homebrew/issues/22408并尝试了符号链接: $ ln -sf /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm 没有运气。 我怎样才能让npm停止在/usr/local/Cellar/…安装软件包并让Grunt再次运行? 谢谢!

更正node-mysql的UPDATE查询语法

我有一个数组“标志”,我已经改变了我的函数中的数组的值。 现在我需要更新到数据库,但我无法这样做。 我已经在桌上有了旗帜专栏。 我不知道如何更新表中variables标志的值 如果我尝试 connection.query('UPDATE visentry SET flag = "flag" ', function(err,rows,fields) { } 它用值标志更新列标志。 如果我尝试以下 var sql = 'UPDATE visentry SET flag= ?'; connection.query(sql,[{flag:flag}], function(err,rows,fields) { 它给出了一个错误 错误:ER_PARSE_ERROR:您的SQL语法中有错误; 检查与您的MySQL服务器版本相对应的手册,在第1行附近使用正确的语法 任何build议,请

查找带有节点的PDF页数(在Windows上)

我做了很多研究(我想还不够?),并试图find一个易于使用的库来find使用Node.js PDF的页数。 该库需要在Windows操作系统上可用。 任何人都知道如何最好地处理这个? 最坏的情况,我正在考虑用PhantomJS和PDF.js库做些什么。 谢谢你的帮助!!

npm ERR! Windows_NT 6.3.9600,无法在windows8中安装cordova

我试图通过在命令提示符下面的命令来安装我的windows8机器上的cordova npm install -g cordova 但我无法安装,因为以下错误可以任何一个帮助我请。 错误: npm ERR! Windows_NT 6.3.9600 npm ERR! argv“C:\ Program Files \ nodejs \\ node.exe”“C:\ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js”“install”“-g”“cordova”npm ERR! 节点v0.12.1 npm ERR! npm v2.5.1 npm ERR! 代码ECONNRESET npm ERR! networking隧道套接字无法build立,原因= getaddrinfo EN OTFOUND代理npm ERR! networking这很可能不是npm本身npm ERR的问题! networking,并与networking连接有关。 npm ERR! networking在大多数情况下,您在代理之后或者networking设置不好。 npm […]

Webpack外部节点和浏览器

我有一个在浏览器和服务器上运行的同构React应用程序。 我通过两个不同的入口点和不同的configuration运行两个单独的Webpack构build,为两者构build相同的代码。 问题是,在服务器的节点上运行时,通过外部脚本标记(本例中为Google Maps)存在于浏览器窗口上的外部文件显然不存在。 除入口点文件外,代码是相同的。 index.html的: // index.html <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=XXX"></script> 简化configuration: // Server Webpack config { entry: 'server.js', target: 'node', externals: { google: google } } // Client Webpack config { entry: 'client.js', target: 'browser', externals: { google: google } } 组件: // The view which builds and runs fine in // the client […]

如何得到一些错误的文件丢失?

我有gulpfile.js这样设置: var scripts = [ 'bower_components/timezone-js/src/date.js', 'bower_components/jquery/jquery.min.js', 'bower_components/jquery-migrate/jquery-migrate.js', 'bower_components/jquery-ui/ui/minified/jquery-ui.min.js', 'bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.min.js', … ]; gulp.task('scripts', function () { return gulp.src(scripts, {base: '.'}) .pipe(plumber(plumberOptions)) .pipe(sourcemaps.init({ loadMaps: false, debug: debug, })) … 即我所有的脚本文件都是完全匹配的。 没有发生。 每隔一段时间我就搞砸一个文件path,或者作者改变目录结构。 我希望在发生这种情况时得到通知,而不是静默地排除脚本,并导致运行时错误。 有什么办法让我做gulp.src报告这类错误?

AWS Lambda copyObject“在完成请求之前退出进程”

我试图复制上传到S3存储桶的文件来创build时间戳备份。 (“活”文件将被定期覆盖以保持永久链接) AWScopyObject,但是,似乎并没有执行。 我收到以下错误 { "errorMessage": "Process exited before completing request" } 导致此错误的代码如下所示; console.log('Loading function'); var AWS = require('aws-sdk'); var s3 = new AWS.S3(); exports.handler = function(event, context) { var srcBucket = event.Records[0].s3.bucket.name; var srcKey = event.Records[0].s3.object.key; var dstKey = srcBucket+'/backup/'+ Date.now() + '-' +srcKey; console.log(srcKey); console.log(dstKey); var copyParams = { Bucket: srcBucket, CopySource : […]