Tag: javascript

JavaScript之间的性能差异等于(==)和三等于(===)

在JavaScript中,使用double equals( == )与使用triple equals( === )之间是否存在性能差异? 例如: if (foo == bar) vs if (foo === bar)

events.js:141扔呃; //未处理“错误”事件

我试图在Mac OS上运行节点4.2.2,我不明白为什么每次我得到这个错误信息: events.js:141 throw er; // Unhandled 'error' event ^ Error: spawn /Users/user/Documents/Projects/project-x/node_modules/gifsicle/vendor/gifsicle ENOENT at exports._errnoException (util.js:874:11) at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32) at onErrorNT (internal/child_process.js:344:16) at doNTCallback2 (node.js:441:9) at process._tickCallback (node.js:355:17) c12320:project-x user$ 怎么了? 如果我运行“gulp构build”有这样的输出: c12320:project-x user$ gulp build [15:13:41] Using gulpfile ~/Documents/Projects/project-x/gulpfile.js [15:13:41] Starting 'clean'… [15:13:41] Finished 'clean' after 160 μs [15:13:41] Starting 'build'… [15:13:41] Starting […]

SyntaxError:意外的标记函数 – asynchronous等待Nodejs

我正在尝试使用节点版本6.2.1与我的一些代码。 有计划将大部分超callback定向代码迁移到看起来更干净,可能performance更好的东西。 我不知道为什么,当我尝试执行节点代码时,terminal抛出一个错误。 helloz.js (async function testingAsyncAwait() { await console.log("For Trump's Sake Print me!"); })(); 日志- BOZZMOB-M-T0HZ:rest bozzmob$ node helloz.js /Users/bozzmob/Documents/work/nextgennms/rest/helloz.js:1 (function (exports, require, module, __filename, __dirname) { (async function testingAsyncAwait() { ^^^^^^^^ SyntaxError: Unexpected token function at Object.exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:513:28) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:458:32) at tryModuleLoad (module.js:417:12) at Function.Module._load (module.js:409:3) […]

通过node.js理解javascriptcallback的概念,特别是在循环中

我刚刚开始与node.js。 我已经做了一些Ajax的东西,但没有太复杂,所以callback仍然是我的头。 我看着asynchronous,但我需要的是顺序运行一些function。 我基本上有一些东西,从一个API拉一些JSON,创build一个新的,然后做了什么。 显然,我不能只运行它,因为它一次运行一切,并有一个空的JSON。 大多数进程必须按顺序运行,但是如果从API中拉取JSON,它可以在等待的时候拉取其他JSON,那么这很好。 把callback放在循环中时我感到困惑。 我该如何处理索引? 我想我已经看到一些在循环内部使用callback的地方作为一种recursion函数,并且根本不使用for循环。 简单的例子会帮助很多。

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) 谢谢!

内存泄漏与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)) 为什么在这里需要分号,我应该什么时候使用它们?