node.js将对象存储在redis中

这是事情 – 我想存储本地JS(node.js)对象(闪存套接字引用)在redis下的某个关键。 当我用简单的client.set()来做这件事的时候,它被存储为一个string。 当我尝试获取值时,我得到[object Object] – 只是一个string。 有机会得到这个工作? 这是我的代码: addSocket : function(sid, socket) { client.set(sid, socket); }, getSocket : function(sid) { client.get(sid, function(err, reply) { // cant't get an object here. All I get is useless string }); },

PhantomJS从string创build页面

有没有可能从string创build一个页面? 例: html = '<html><body>blah blah blah</body></html>' page.open(html, function(status) { // do something }); 我已经尝试了上面没有运气…. 另外,我认为值得一提的是我正在使用nodejs和phantomjs-node(https://github.com/sgentle/phantomjs-node) 谢谢!

警告:React试图在容器中重用标记,但校验和无效

我试图得到一个同构的Node.js,Express,Webpack,React应用程序工作。 我收到以下错误。 有关如何解决它的任何build议? Warning: React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the […]

为什么NPM的重复依赖政策起作用?

默认情况下,当我使用NPM来pipe理一个依赖于foo和bar的包时,默认情况下,这两者都依赖于corelib,NPM将两次安装corelib(一次为foo,一次为bar)。 他们甚至可能是不同的版本。 现在,假设corelib定义了一些在foo,bar和主应用程序之间传递的数据结构(例如URL对象)。 现在,我所期望的是,如果这个对象发生了一个向后不兼容的变化(例如,一个字段名称发生了变化),并且foo依赖于corelib-1.0,bar依赖于corelib-2.0,悲伤的pandas:酒吧版本的corelib-2.0可能会看到由旧版本的corelib-1.0创build的数据结构,事情不会奏效。 我真的很惊讶地发现,这种情况基本上从来没有发生过 (我search了谷歌,堆栈溢出等,寻找其应用程序停止工作的人的例子,但谁可以通过运行重复数据删除来修复它)。所以我的问题是, 为什么这是怎么回事? 是否因为node.js库永远不会定义在程序员之外共享的数据结构? 是不是因为node.js开发者永远不会破坏其数据结构的向后兼容性? 我真的很想知道!

内存泄漏与socket.io + node.js

我的节点应用程序似乎有内存泄漏。 我很快就构build了它,而且我的JavaScript不是太强大,所以这可能很简单。 我已经做了一些堆转储,它是string'对象'? 内存泄漏,每5分钟约1MB。 我扩展string,它实际上是String.Array? 堆栈: http : //i.imgur.com/ZaBp0.png #!/usr/local/bin/node var port = 8081; var io = require('socket.io').listen(port), sys = require('sys'), daemon = require('daemon'), mysql = require('mysql-libmysqlclient'); var updateq = "SELECT 1=1"; var countq = "SELECT 2=2"; io.set('log level', 2); process.on('uncaughtException', function(err) { console.log(err); }); var connections = 0; var conn = mysql.createConnectionSync(); dbconnect(); io.sockets.on('connection', […]

Node.js大型应用程序的可靠性

我是Node.js的新手,目前正在质疑它的可靠性。 根据我目前看到的情况,似乎存在一个主要缺陷:任何未被捕获的错误/exception都会使服务器崩溃。 当然,你可以尝试对你的代码进行防弹testing,或者在关键领域尝试一下,但是几乎总是会有漏洞通过破解。 如果有问题的请求可能会影响所有其他请求,这似乎很危险。 有两个解决方法,我发现: 使用守护进程或像永远的模块来自动重启服务器,当它崩溃。 我不喜欢这件事的是,服务器仍然停留一两秒钟(对于一个大的网站,可能是数百(数千?)的请求)。 使用process.on('uncaughtException')捕获未捕获的exception。 这种方法的问题(据我所知)是没有办法得到引起exception的请求的引用。 所以这个特定的请求是挂起(用户看到加载指标,直到超时)。 但至less在这种情况下,其他无问题的请求仍然可以处理。 任何Node.js的老兵都可以参与吗?

由于“没有捕获的浏览器”消息,Karma没有运行unit testing

我试图设置噶运行使用茉莉花AngularJSunit testing,但我不能让testing运行。 我敢肯定,我忽略了一些简单的东西。 我在Windows 7机器上运行这个,并安装了Node.js并通过npm安装了karma。 我的目录结构如下所示: js / app / – 包含控制器,应用程序等 js / config / – 包含karma.conf.js js / lib / – 包含angular js / test / – 包含茉莉花规格 我在js目录中启动一个命令提示符并运行这个命令: karma start config/karma.conf.js 这导致Chrome在端口9876上运行,但是每当我更改任何观看的文件并检查Karma输出时,我看到以下信息消息: No captured browser, open http://localhost:9876/ 这是我的configuration文件: module.exports = function(config) { config.set({ basePath: '../', frameworks: ['jasmine'], files: [ 'lib/angular.js', 'app/**/*.js', 'test/**/*.js' […]

JSON对象的增量编码

是否有一个标准库或工具用于计算和应用JSON文档的差异? 基本上,我有一大堆想要在networking上保持同步的大文件,而且我希望避免在每次要同步它们时都要重新发送它们的整个状态(因为其中许多variables不会改变)。 换句话说,我只想传输改变的字段,而不是重传整个对象。 我想可能会有如下方法: //Start with two distinct objects on the server // prev represents a copy of the state of the object on the client // next represents a copy of the state of the object on the server // //1. Compute a patch patch = computePatch(prev, next); //2. Send patch over the network […]

在ES6中使用分号

我印象中分号已经被ES6淘汰了。 不过,我今天碰到这个: 不起作用: let i = 0 [0, 1, 2, 3, 4, 5, 6].forEach(item => console.log(item)) 作品: let i = 0; [0, 1, 2, 3, 4, 5, 6].forEach(item => console.log(item)) 为什么在这里需要分号,我应该什么时候使用它们?

虚拟主机与独立的node.js服务器

有没有办法使用node.js服务器(即在一个IP下托pipe多个域)的虚拟主机?