タグ

node.jsに関するKinjouJのブックマーク (60)

  • Node.js 8: `util.promisify()`

    Node.js 8 has a new utility function: util.promisify(). It converts a callback-based function to a Promise-based one. util.promisify() in action  # If you hand the path of a file to the following script, it prints its contents. // echo.js const {promisify} = require('util'); const fs = require('fs'); const readFileAsync = promisify(fs.readFile); // (A) const filePath = process.argv[2]; readFileAsy

  • commander.jsでらくらく集計バッチ作成 - Qiita

    簡単なログファイルの処理にはshell scriptやperlなどを使っていましたが、大きくなく、かつ、大したことがない処理にnode.jsでちゃちゃっと書くことが増えて来ました。 その理由として、d3.jsがcsvやt svをparseしてくれたり、配列の集計などのメソッドが揃っているがあります。 この投稿では、下記2つのモジュールの使い方をご説明します。 commander.js d3.js d3.js d3.jsはmike bostock氏による集計+SVG操作ツールです。 この投稿ではSVG操作は利用しません。

    commander.jsでらくらく集計バッチ作成 - Qiita
  • commander.js - node.jsバッチ作成フレームワーク | Node.js技術

    Option解析 .option()でコマンド引数を定義できます、且つドキュメントも自動的に作成してくれます。下のコードはcommander.jsを利用してコマンドライン引数process.argvから解析し、program.args配列に作成する例です。 mycommander.js

  • pageres-cliで複数デバイスのスクリーンショットを一括作成 - Qiita

    pageres-cliをインストールすると、コマンドラインから手軽に複数サイズのスクリーンショットを作成することができる。 レスポンシブサイト作成時の表示確認や、資料作成などに活用すると便利。 必要な環境 Node.js インストール方法 ターミナルから以下のコマンドを実行。

    pageres-cliで複数デバイスのスクリーンショットを一括作成 - Qiita
  • npm でコマンドラインツール開発事始め - Qiita

    node.js で Gmail API を叩きたい (https://github.com/takayukioda/cmail) 軌跡その2 Gmail をコマンドラインで確認できるツールを作りたい. 開発言語は興味あるけど中々手が出せてなかった node.js で作りたい. そんなわけで node.js の簡単な使い方を勉強 node.js のインストール node.js のインストール方法は色々ある 公式ホームページからダウンロードしてインストール Homebrew 等のパッケージ管理ツールからインストール nvm 等の node 用のバージョン管理ツールを利用してインストール などなど. 自分はバージョンが頻繁に変わるらしいという事で nvm をインストールして,そこから最新版をインストールした. プロジェクトの作成 Node でプロジェクト情報を package.json に書くの

    npm でコマンドラインツール開発事始め - Qiita
  • FlyでES6/7時代のJavaScriptビルドシステムとやらを体験してみた - Qiita

    Flyとは https://github.com/flyjs/fly Node.js製のビルドシステムです。 gulp, Gruntなどと同じような事ができます。基的なビルドシステムとしての機能を提供し、サードパーティのライブラリをもりもり入れていくことでできることの幅を増やしていく。というところも同じような感じです。 ただ大きくgulp, GruntとことなっていることとしてはFlyの場合、ES6のGeneratorを使って書いていくところです。 また、ES7で導入されるとされている『async/await』を使った記法も使えるようです。 早速適当な構成で試してみた 今回やってみたのは以下の様なこと src/にES6でコードを書いている src/に書いているコードをES5にコンパイルしてlib/に置く lib/に置かれたコードをbrowserifyでビルドしてbuild/に置きたい タ

    FlyでES6/7時代のJavaScriptビルドシステムとやらを体験してみた - Qiita
  • サーバー: Node.js クライアント: RubyでSSL通信 - Qiita

    $ openssl genrsa -out server-key.pem 1024 $ openssl req -new -key server-key.pem -out server-csr.pem $ openssl x509 -req -in server-csr.pem -signkey server-key.pem -out server-cert.pem var tls = require('tls'); var fs = require('fs'); var options = { key: fs.readFileSync('server-key.pem'), cert: fs.readFileSync('server-cert.pem') }; tls.createServer(options, function (socket) { socket.write("welco

    サーバー: Node.js クライアント: RubyでSSL通信 - Qiita
  • 一つのファイルでサーバーとHTMLファイルとコードを共有するやつ - 素人がプログラミングを勉強していたブログ

    ちょっと説明がし難いがindex.htmlというファイルがあったとして、ファイルプロトコル経由で file://path/index.html などのように直接ブラウザで起動すると、プロトコルの関係でファイルが読み込めなかったり、エラーになったりすることがよくある。サーバーをたててlocalhostなどから読み込めばいいのだが、微妙にセットアップが面倒臭い。下記コードをindex.htmlとして保存すると node index.html とするだけでブラウザが立ち上がり、index.html自身をルートとしてそのディレクトリ以下のファイルを配信する簡易サーバーが立ち上がる。具体的には、 http://localhost:port/index.html のような形でアクセスできるようになる。コマンドを実行したディレクトリの絶対パスをもとにポートを自動生成しているので、すでにサーバーが起動済み

    一つのファイルでサーバーとHTMLファイルとコードを共有するやつ - 素人がプログラミングを勉強していたブログ
  • npm v3.x 試してみた & 注意する点 - Qiita

    ふと思い立って npm install -g npm@3 した。3.1.2 は VERY BETA とのこと(ニュアンスがよくわからん。アルファとの対比なのか、アルファ相当なのか) ので、そのうち出るでしょう。 node_modulesのフラットな展開 npm@3 だとnode_modulesの依存がパッケージ間のバージョンが衝突しない限り、トップレベルのnode_modulesにフラットに展開される。これによって同一のモジュールを依存ツリー間でモジュールが重複した時にnode_modules以下のサイズが膨らむのを抑えることができる。 衝突した場合はそのモジュールの子のnode_modulesに格納されて衝突は回避される。 気になるrequireの仕様 とはいえ、requireの仕様が変わってるわけじゃないので、トップレベルから子だけじゃなく孫モジュールも直接requireできてしまう。

    npm v3.x 試してみた & 注意する点 - Qiita
  • atom-shell情報 - Qiita

    atom-shellとはどういうもので、どのようにすれば動かせるのかということを調べているので、その過程で得られた情報をまとめておく。 atom-shellでデスクトップアプリをつくれる GitHub製のAtomというエディタはatom-shellというライブラリを利用して実現されている。atom-shellはJavaScriptデスクトップアプリケーションをつくるための便利なライブラリで、ネイティブAPIを実行するための実行環境を提供することでそれを実現させようとしている。Webサーバの代わりにデスクトップアプリケーションに特化したNode.jsの実行環境だと考えても良いだろう。 atom-shellには2つの側面がある Node.jsでWebアプリを書いたことがあれば分かるかもしれないが、JavaScriptのコードにはサーバサイドで動かすためのものとクライアントサイドで動かすための

    atom-shell情報 - Qiita
  • node.jsでこんなのもテストしたい!! という話 - Qiita

    テストフレームワークは、busterJSが一番慣れてたんですが、 部署御推薦のmochaをいっちょやってみるかー、と思っているこのごろです。 そしてついでに、 「このへんは、node.jsの場合どうテストするのがかっこいいかしら!!」 と気になっていた部分について、いろいろ調べてみました。 mochaの細かい説明については、公式その他をみてください。 mochaっていうかほとんどshouldですよね。 普通のテスト(libraryやcontrollerのテスト) テストしたいmoduleをrequireして、 shouldもrequireして、テストを書く。これが基ですね。 // テストしたいmoduleをrequire var hoge = require('../hoge'); // テスト用のライブラリをrequire (mochaの場合は、shouldがあればいいはず) var

    node.jsでこんなのもテストしたい!! という話 - Qiita
  • Express / Socket.IO をスケールアウトしてみよう

    20140826.md Express / Socket.IO をスケールアウトしてみよう Seiya Konno Works at Uniba Inc. (http://uniba.jp) https://twitter.com/nulltask https://github.com/nulltask https://fb.me/nulltask スケーラビリティとは システムの規模に依らず機能を適応できること リクエストに対するスケーラビリティ アプリケーションコードに対するスケーラビリティ Express https://github.com/strongloop/express 言わずと知れたウェブアプリケーションフレームワーク 右も左もわからなかった頃 => app.js の肥大化 メンテナビリティの低下 アプリの規模が大きくなってもメンテナビリティを確保したい Mounting

    Express / Socket.IO をスケールアウトしてみよう
  • PM2から実行中のワーカーの情報を取得する(サンプルとしてnode.js各ワーカーのメモリを取得) - Qiita

    var monitor_init = function(){ if (!('send' in process)) {return;} process.on("message", function (msg) { if ( "type" in msg ) { switch(msg.type){ case "process.getinfo": process.send({type:msg.type, memory:process.memoryUsage()}); break; default: break; } } }); } var main = function(){ monitor_init(); var update = function(){ setTimeout(update, 1000); } update(); } main();

    PM2から実行中のワーカーの情報を取得する(サンプルとしてnode.js各ワーカーのメモリを取得) - Qiita
  • Node.jsで書いてQuickStartを使ってブラウザで実行する話

    QuickStartというのは、名前がややこしいですがSpotify社が出してるツールのことです。 このツールはCommonJSで書いたJavaScriptのモジュールの依存関係を解決してビルドしたり、ローダとして使えるものです。 前者のビルドする機能は簡単にいえばBrowserifyです。 QuickStartもBrowserifyと同じく、nodeのcoreモジュール等をブラウザで使える様になってます。(CoreモジュールはBrowserifyが使ってるものと同じshimが使われてる) もう一つのローダとして使えるのがこのQuickStartの面白い所なんじゃないかなと思います。 この記事では、適当に試して見たQuickStartの使い方について見ていきます。 サンプルプロジェクトは以下に置いてあります。 azu/quickstart-example ビルド ビルドする場合はBrose

    Node.jsで書いてQuickStartを使ってブラウザで実行する話
  • Node.js cluster.jsによるgraceful restartについて | Trifort Tech blog

    こんにちは。 Trifortの山中です。 社内ではAndroid兼node.js周りの開発を行っています。 まず今回は弊社で運営しているスタートークというアプリで使っている、Node.jsのネットワーク構成等を書きたいと思います。 Star Talk 〜スタートーク〜 弊社で開発しているトークアプリです LINEと違ってニックネームだけで始められます。落としていない方はぜひダウンロードを。 機能面ではよくあるチャットアプリの基的機能は網羅しており、加えてタスク管理やチャットの全文検索、お気に入りや複数デバイス同時ログイン可能など多彩な独自機能を含んでいます。 しかし、なにより重要なのはアプリの安定性です。 リリース当初はサーバーサイドの担当だったのですが(Android開発者で入ったのに)、現在ではDAUの増加や新機能開発に伴いサーバーサイドの担当者が増え、私はAndroidをメインで

    Node.js cluster.jsによるgraceful restartについて | Trifort Tech blog
  • Socket.IO, Redisを使用し各ゲーム間でプッシュ通知するシステム | 株式会社サイバーエージェント

    2. システム概要 homingは、アメーバピグ関連サービスのいずれかにログインしているユーザに対して、各サービスの通知情報を横断的にプッシュ通知します。 システムの構成は以下の通りです。 図2-1. システム概要 2-1. APIサーバ ユーザへの通知要求を受け付けるREST fullなAPIを備えたWebサーバです。 Node.jsのClusterによる、master/worker構成で稼働します。 通知要求はワーカプロセスで処理します。 図2-2. APIサーバ 2-2. Redisサーバ(データストア用) 一時的なデータをストアするためのRedisサーバです。 sentinelプロセスによる、master/slave構成で稼働します。 ストアされたデータはメモリ上のみで管理し、ディスクへの書き込みは行いません。 以下の情報を管理します。 ユーザのオンライン情報 ユーザIDの索

  • 今一番(?)おいしいJavascriptフレームワーク「Meteor」触ってみた - そんな今日この頃でして、、、

    ちょっと前こんな記事がブクマを集めていた。 JavaScript プログラマの職種は4種類くらいに分けるべき プログラムを生業としている者としては、確かに自分の領分が拡大解釈されて仕事を押し付けられることのしんどさは凄くよく分かる。 Node.jsの登場によりサーバサイドまでもJavascriptで記述できるようになったとはいえ、実際的には考慮しなければいけない要素も記述の仕方もサーバとクライアントで全然異なるわけで、「一つの言語で全てを記述できる」とは言ってもなかなか簡単ではなかったりする。 (特にクライアントサイドはフレームワークの概念が何だか混沌としてるし) とは言え、「単一の言語でサーバからクライアントまで弄れる」ということが大きな魅力であるのも確かなわけで、機会があれば勉強してみたいなーと思ってはいた。 そこに面白い設計思想のJavascriptフレームワークMeteorが登場!

    今一番(?)おいしいJavascriptフレームワーク「Meteor」触ってみた - そんな今日この頃でして、、、
  • Node.js + Socket.IO + pm2でデーモン化とクラスタリング - 人と技術のマッシュアップ

    Socket.IOをpm2でクラスタリングするには、ちょっと工夫が必要だったのでメモ forever Node.jsのデーモン化といえばforeverです。しかしクラスタリングしようとすると、Node.jsのコードをクラスタリング対応で書かないといけないのでやや面倒だったりします。今回、foreverよりも高機能なpm2を使ってクラスタリングを試してみました。 pm2 pm2はforeverと同じようにNode.jsをデーモン化するツールですが、モニタ機能やクラスタリング機能などかなり高機能になっています。 pm2のインストール pm2はグローバルでインストールします。 $ npm install -g pm2 対応するNode.jsのバージョンは古いと動かないかもしれません。今回はv0.10.20(on Mac)で動作確認しました。動かすNode.jsアプリはこちらのSocket.IOの

    Node.js + Socket.IO + pm2でデーモン化とクラスタリング - 人と技術のマッシュアップ
  • Node.jsのConnectなら、ローカルサーバーを一瞬で - console.lealog();

    ちょっとコレは感動的やったので! ご存知の方はご存知なのでしょうが、このモジュール。 参考:Connect - High quality middleware for node.js インストール Node.jsとnpmは使える想定で。 言わずもがなnpmでインストール。 cd /path/to/my/project mkdir sample && cd sample npm install connectしたらば、以下のファイルを用意します。 var cnct = require('connect'); cnct().use(cnct.static('/path/to/my/project/sample')).listen(3000); Connectをrequire どこをドキュメントルートにするか 何番ポートか たったこれだけ。 ファイル名は server.js とでもしておくとして

    Node.jsのConnectなら、ローカルサーバーを一瞬で - console.lealog();
  • Node.jsにPromiseが再びやって来た! - ぼちぼち日記

    tl;dr サンプルコードを付けたら記事がかなり長くなってしまったのでご注意下さい。 Node.jsの current master で V8がアップデートされ ES6の Promise が使えるようになりました(要オプションですが)。Promise を使うと Node.jsの非同期処理がどのようになるのか、Stream と Promise を組み合わせた使い方なども含めて紹介します。 1. はじめに Nodeの次期安定版 v0.12は、すぐ出ると言われながら既に v0.10のリリースから1年が過ぎてしまいました。 現在、v0.12の主要な新機能の実装は完了していますが、まだ安定版のリリースに向けて手当できていない部分が残っている感じです。そんな残っている部分の一つだった V8 のアップデートが先週末に行われました。 deps: update v8 to 3.24.40 (3/19現在は

    Node.jsにPromiseが再びやって来た! - ぼちぼち日記