Nodeの世界からのニュース:Node 0.11.14、svgexport、node-webkitgtk、Nightmare、Prototypes、node-libpqおよびnode-pg-native

ノード11.11.14



自由

ノード0.11.14は、 uv



http_parser



npm



openssl



、およびv8



更新を伝達する光を見ました。



この更新には、ほとんどすべてのモジュールの修正が含まれているようです: cluster



はバージョン0.10にロールバックされ( setupMaster



動作)、 console.dir



はオプションを受け入れ、イベントは続行できる他のイベント(リークしているイベント)を出力/返すことができます つまり、アップグレードする前に知っておく必要がある多くの変更があります。



11.11.14に含まれているuv



バージョンはrc1です。 さらに、最新のコミットを確認するためにuv



リポジトリにアクセスしたときに、unicornorex(ユニコーン恐竜)のクールなロゴに気付きました。



svgexport



Ali Shakibaによるsvgexport(GitHub: shakiba / svgexport 、npm: svgexport )は、SVGファイルをPNG、JPEG、およびPDFに変換するためのコマンドラインユーティリティです。



このユーティリティはPhantomJS



基づいており、作成者はこれを使用してiOSおよびAndroidプロジェクトのアイコンを自動的に変換しました。 これは、非Webネイティブアセンブリチェーンの一部としてNode / Gulp / Gruntをクールに使用するのと似ていますが、以前は疑っていませんでした。



node-webkitgtk



node-webkitgtk(GitHub: kapouer / node-webkitgtk 、License: MIT 、npm: webkitgtk )JérémyLalによるNodeのwebkitgtkバインディングのコレクションです。 製品のプログラミングインターフェースはチェーンで呼び出すことができるため、次のようなことができます。



 WebKit().load('http://github.com').png('github.png').pdf('github.pdf')
      
      





この製品は問題なく使用するために作成されたため、Webサイトのサムネイルの生成や統合テストなどに役立ちますが、私は使用しようとしませんでした。



悪夢



画像



テストの中で最も脆弱で混乱を招く部分は、完全なスタック統合テストです。 私はPhantomJS



またはSelenium



に基づいたさまざまなアプローチを使用しPhantomJS



が、それらはすべて困難を引き起こしていました。



一般的な問題の1つは、対話インターフェイス(API)にあります-特にNodeアプリケーションの標準開発に慣れている場合、 PhantomJS



自体には奇妙なAPIがあります。 そのため、 PhantomJS



とやり取りするためのプログラミングインターフェイスを簡素化することを目的としたNightmare (GitHub: segmentio / nightmare 、ライセンス: MIT 、npm: nightmare )について聞いてうれしく思いました。



Nightmare



を実際に試してみたい場合は、注意してくださいPhantomJS



をシステムにインストールする必要があります。 これは、ポピーでHomebrew



を使用して実行できます。 ここ(メインプロジェクトサイト)では 、他のプラットフォーム用のパッケージを見つけることができます。



Nightmare



は、ターゲットページのDOMでJavaScriptを実行できるチェーン可能なプログラミングインターフェイス(API)があります。 たとえば、 jQuery



でロードされたページがある場合、コールバック中にevaluate



関数の$



にアクセスできます。



ここで、サーバーを起動するWebアプリケーション( app.js



)をダウンロードし、入力フォームに記入してサーバーに送信しました。 evaluate



関数のコードはページで実行されるため、 jQuery



を使用してDOMを操作できます。



 var server = require('./app'); var Nightmare = require('nightmare'); new Nightmare() .goto('http://localhost:3000') .type('input[name="email"]', 'alex@example.com') .type('input[name="password"]', 'password') .click('.sign-in') .evaluate(function() { return $('.sign-out').is(':visible'); }, function(visible) { assert(visible, '.sign-out should be visible'); }) .run(function() { server.close(); });
      
      





当然、この製品はPhantomJS



を使用する一般的なタスクに使用できますが、クライアント側で複雑なコードをテストするためにNightmare



を使用するのは非常にクールだと思われます。



プロトタイプ



アレックスフェルナンデスは、注目のプロトタイプを紹介しました(GitHub: alexfernandez / prototypes 、ライセンス: MIT 、npm: prototypes )。 このモジュールはプロトタイプオブジェクトを変更するため、慎重に使用しますが、いくつかの便利なメソッドを見つけることもできます。



以下に使用例を示します。



 'pepitus'.startsWith('pep'); 'hi.there'.substringFrom('.'); // 'there' { a: 1, b: 2 }.forEach(function(value, key) { console.log(key, value); });
      
      





node-libpqおよびnode-pg-native



node-libpq(GitHub: brianc / node-libpq 、ライセンス: MIT 、npm: libpq )Brian M. CarlsonのPostgreSQL用クライアントCライブラリのネイティブlibpqバインディングのコレクションです。



このモジュールのタスクは、 libpq



提供するCプログラミングインターフェイスを可能な限り近くに反映し、絶対に最小限の抽象化レベルを提供することです。 この製品は、非常に低レベルであり、node.jsを除き、Cから直接取得できるlibpqへの同じアクセスをユーザーに提供することを目的としています。 すべての費用を支払う必要があるため、「ハードウェアに近接」するための費用は、JavaScriptのスタイルでCに似たプログラミングインターフェイスを使用する必要があることです。



Brianは人気のあるPostgreSQL



ライブラリpgの著者であり、最近node-pg-nativeもリリースしnode-libpq



。これはnode-libpq



を使用した高性能PostgreSQL



モジュールです。



Sean Levyがnode-pg-nativeを紹介してくれたのは、同期ソフトウェアインターフェイスに夢中だからです。



 var rows = client.querySync('SELECT NOW() AS the_date') console.log(rows[0].the_date) //Tue Sep 16 2014 23:42:39 GMT-0400 (EDT)
      
      





本当に簡単です!



翻訳者から



Alex Young Jungによる 2つの記事tytstytsの 翻訳があります



しばらくの間、私はオープンソースソフトウェア開発の分野に入ることを決めました。だから誰かがレビューの翻訳のバトンをアレックスから受けたいと思うなら、私とおそらくコミュニティ全体はこれらの翻訳を喜んで見るでしょう。



ご清聴ありがとうございました。



All Articles