タグ

node.jsに関するboushiのブックマーク (16)

  • npmで同じライブラリの複数バージョンをインストールして使う方法

    追記: [email protected]で別のパッケージを特定のパッケージ名で指定できるpackage aliasesが追加されました。 rfcs/0001-package-aliases.md at latest · npm/rfcs 注意: この手法はnpm ciで壊れてる場合があります npm ci fails with transitive local packages - 🐞 bugs - npm forum Add support for ESLint v2 by Daniel15 · Pull Request #107 · fkling/astexplorerを見ていて、一つのプロジェクト内で複数のバージョンの同じライブラリを使う面白い方法が使われてたのでメモです。 前述したAST explorerの場合だと、ESLint@1とESLint@2の両方に対応したPlaygr

    npmで同じライブラリの複数バージョンをインストールして使う方法
  • Electronでアプリを書く場合は、気合いと根性でXSSを発生させないようにしなければならない。 - 葉っぱ日記

    そのうちもう少しきちんと書きますが、とりあえず時間がないので結論だけ書くと、タイトルが全てでElectronでアプリを書く場合は気合いと根性でXSSを発生させないようにしなければならない。 これまでWebアプリケーション上でXSSが存在したとしても、影響範囲はそのWebアプリケーションの中に留まるので、Webアプリケーションの提供側がそれを許容するのであればXSSの存在に目をつむることもできた。しかし、ElectronアプリでDOM-based XSSが一か所でも発生すると、(おそらく)確実に任意コード実行へとつながり、利用者のPCの(そのユーザー権限での)全機能が攻撃者によって利用できる。 そのため、Electronでアプリケーションを作成する開発者は気合いと根性でXSSを完全につぶさなければならない。 nodeIntegration:falseやContent-Security-Pol

    Electronでアプリを書く場合は、気合いと根性でXSSを発生させないようにしなければならない。 - 葉っぱ日記
  • 東京Node学園 14時限目で「Synth」について話してきました | Tokyo Otaku Mode Blog

    昨夜、渋谷ヒカリエで行われた東京Node学園 14時限目で、トップバッターとして発表してきました。 発表内容は、「Synth」というWebアプリケーションフレームワークについてです。 Tokyo Otaku Modeでは、バックエンドとしてNode.jsとMongoDBを使っていてExpressで運用していますが、色んなフレームワークも触っていてSynthもそのうちの一つです。 SynthはInfoQの「APIファーストのWebフレームワークSynthを巡るコミュニティの困惑」という日語版記事が出て初めて知った人が多いと思います。 記事にもあるとおり、JSONやテンプレートHTMLを返すAPIとそれを使ってクライアント側でアプリケーションを構築するという形に特化したAPIファーストのWebアプリケーションフレームワークです。 ちょうど上記の記事が出た頃、天下一クライアントサイドJS MV

    東京Node学園 14時限目で「Synth」について話してきました | Tokyo Otaku Mode Blog
  • minimatch(node.js で path match するライブラリ)のチートシートを作った - 詩と創作・思索のひろば

    minimatch っていうのは Grunt や gulp.js その他あちこちで(npm もらしい)使われてるグロブマッチライブラリです。最近よく gulp を使ってるんだけど、毎回 gulp.src() の書き方で迷ってしまう。調べた結果 minimatch に行き当たったんだけど各種 glob 実装のドキュメント読んで把握しろ、という感じでよく分からなかったので早見表を作った次第です。 https://github.com/motemen/minimatch-cheat-sheet 確認用にテストを書いていて、そのテストケースからドキュメントを生成してるので間違いはないはずです。説明が間違ってる、この例も乗せた方が見やすいだろ、とかあればプルリクください。 折角なので日語版を書いておきますね。 基 * はパスセパレータを含まない任意の文字列にマッチ ** はパスセパレータを含む任

    minimatch(node.js で path match するライブラリ)のチートシートを作った - 詩と創作・思索のひろば
  • Node.js and Forever as a Service: Simple Upstart and Init Scripts for Ubuntu – Ex Ratione

    Node.js and Forever as a Service: Simple Upstart and Init Scripts for Ubuntu Forever is a useful tool for running a Node.js process with monitoring; it can be set to restart a failed process, and has a few other helpful features along the same lines. In this post you'll find a couple of exceedingly simple scripts for running a Node.js process as a service on Ubuntu using Forever. One thing I've fo

  • [Nodejs] Express+Log4jsで実践的なログ出力を行う - YoheiM .NET

    こんにちは、@yoheiMuneです。 日は、Log4jsを使ったログの出力やログローテーションをExpressで行う方法をブログに書きたいと思います。 Expressで一番簡単なログファイルの作成 Expressで出力しているコンソールログを一番簡単にログファイルに保存するには、以下のコマンドで実現で来ます。 $ node app.js >> app.log こうすればコンソール出力されてる内容が、app.logというファイルに書き込まれます。 ただ、開発中はこれくらいで良いのですが、リリースして運用する為にはログファイルを分けたり、フォーマットを指定したりしたいので、 ちょっと不十分です。 そこでlog4jsというログ出力モジュールを使って、ログ出力を行いたいと思います。 Log4jsの紹介 Log4jsは、JavaLog4jJavaScriptバージョンのモジュールで、柔軟なロ

    [Nodejs] Express+Log4jsで実践的なログ出力を行う - YoheiM .NET
  • nodejsのWebSocket-Serverに色んな方法で外部からブロードキャストする方法 - blog::wnotes.net

    久々のnode.jsです。node.jsと言えばgruntとかが有名になっちゃって、WebSocketとかソンナノアッタネ状態なわけですが、久々にちょろっと触ってて解決したところがあったのでメモメモ。 WebSoketの利用ポイントがあんまり… WebSocketは確かに面白いです。リアルタイムです。でもクライアント側が限定されたり、さらにはnode.js側のnpmの対応とかみると、そこまでガチなロジックアプリケーションにはまだ使えないかなーって個人的には思ってます。実際、サンプルアプリもチャットとかそんなのばかりですしね。 ブロードキャスト専用のプロセスとして使う なので、メッセージをブロードキャストして受け取る機構として使おうかなと思った次第です。サポートされていなければメッセージを受けとらないだけで、別段クリティカルな部分じゃない所で動かせばいいかなーと思いました。まぁメッセージが受

  • [NodeJS] nodeで例外処理を書いて、最低限落ちないサーバー実装を行うException Handler - YoheiM .NET

    [NodeJS] nodeで例外処理を書いて、最低限落ちないサーバー実装を行うException Handler こんにちは、@yoheiMuneです。 最近、node.jsを使ってサーバー運用を始めてみました。 初めてのことが多くて大変ですが、その分学んだこともたくさんあるので、ブログにドシドシとアウトプットしたいと思います。 node.jsでは1つのエラーでサーバーダウン。。 今まで最終的なエラーハンドリングは、ApacheやらSpringやらstrutsやらに任せてきた自分としては、node.jsは斬新です。 1つのJSエラーが発生するとサーバーが停止してしまいます。 例えば、以下のようなサーバーコードがあったとして、エラー部分が実行されるとサーバーは応答しなくなります。 // 必要なモジュールを読み込みます。 var http = require("http"); var fs =

    [NodeJS] nodeで例外処理を書いて、最低限落ちないサーバー実装を行うException Handler - YoheiM .NET
  • caolan/asyncを使ったNode.jsのフロー制御 - 開発^3

    JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース)の16日目です。 @koichikさんの13日目の記事にも書かれているように、Node.jsにて非同期処理を管理する方法には以下の2種類があります 非同期処理の呼び出し時にコールバック関数を与える。処理が終わったらエラーの有無と、結果が通知される。 EventEmitterに対してon/onceでEventListenerをセットして非同期処理を実行する。非同期処理の実行によって発生したイベントやエラーはリスナーに通知される。 後者の説明はkoichikさんの記事にお任せして、この記事は前者を扱うライブラリcaolan/asyncについてみていきたいと思います。 caolan/asyncって? https://github.com/caolan/async で公開されているフロー制

    caolan/asyncを使ったNode.jsのフロー制御 - 開発^3
    boushi
    boushi 2014/06/14
    わかりやすい
  • CPUを最大限活かそう。Nodeでclusterを使ってみる

    Node, iOS, Android, HTML5, JavaScriptの話題。ときどきMacLinux。 Nodeでは、クラスタを簡単に実装できます。こんなに簡単でいいのか。 server.js var cluster = require('cluster'); var http = require('http'); // CPUの数 var numCPUs = require('os').cpus().length; if(cluster.isMaster) { for(var i=0; i<numCPUs; i++) { // マスターだったらforkします var worker = cluster.fork(); console.log('worker forked: pid=' + worker.pid); } // worker終了時のイベントハンドラ cluster.on

  • 橋本商会 » Engine.IO単体でチャットを作った

    友達に「Socket.IOはメモリリークヤバイから、新規開発なら迷わずEngine.IOを使え」と言われたのでEngine.IOを直接さわってみた。 Engine.IOはSocket.IOの内部で使われている部品で、「websocketでもajaxでも何でもいいのでとにかく通信ができる状態」を作るライブラリ。 もともとSinatra::RocketIOやlinda-socket.ioやRuby用socket.ioクライアントを作る時に中身は覗いてたけど単体で使った事はなかったし、どういう実装か忘れがちなのでメモする。 Chatを作った とりあえずchatを作った。Herokuでwebsocketを動かしている。 サーバーもクライアントも50行ぐらいで書けた。 デモ ソースコード 感想としては、Engine.io単体で使うと、綺麗なアプリケーションを書くにはその上に(フル機能ではないにしても

  • YEOMANを使ってMEAN(MongoDB + Express.js + Angular.js + Node.js)のWebアプリケーションを作る - @ledsun blog

    MEANとは MongoDB + Express.js + Angular.js + Node.js を組み合わせてWebアプリケーションを作成することです。 手順 Windows上で簡単なユーザ登録アプリケーションを作ってみましょう。 次の手順で進めていきます。 アプリケーションの雛形を作成 ユーザページを追加 htmlを修正してユーザ一覧を追加 クライアントのJavaScriptAngular.js)を修正 サーバのJavaScript(Express.js)を修正 MongoDBを参照 ユーザの登録機能を追加 完成したものはGitHubにおいてあります。 Chocolatey体のインストール以外はMinGW Bash*1で実行可能です。 事前準備 ChocolateyでMongoDBとNode.jsをインストールします。Chocolateyをインストールしていなかったら次のコマン

    YEOMANを使ってMEAN(MongoDB + Express.js + Angular.js + Node.js)のWebアプリケーションを作る - @ledsun blog
  • mongodbのsharding機能を使ってみた

    vim /etc/yum.repos.d/10gen.repo [10gen] name=10gen Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64 gpgcheck=0 enabled=1 priority=1 yum clean all yum -y install mongo-10gen mongo-10gen-server --disablerepo=\* --enablerepo=10gen service mongod start mongo でmongoコンソールが利用できることを確認する service mongod stop 確認ができたらshardingノードを立ち上げるため一旦停止しておく mkdir /data/db/shard1/ mkdir /data/db

  • Node.jsで(なるべく)落ちないアプリを作ろう。 - from scratch

    さてさて、第三回東京Node学園の自分の発表の時を見ていた人にはわかっていると思いますが、自分の発表の時に見事に発表用のアプリが見事に落ちてしまいました。 悔しかったので、NodeNinjaさんに頼んでログの調査方法を教えてもらい、調査してみました。 その結果、以下のことがわかりました。 あの時落ちた理由は、単純な問題で、socket.ioからもらった値を未検証で利用していたため、 値にnullが入った事によるNullPointer例外でした。 聴講者の誰かがJavascriptのコンソールからおそらく下記のように実行したのでしょう。 socket.emit('count up', null, null);こうやると、nullがemitされ、サーバー側ではnullが来ることを期待していなかったので 落ちたという、新人プログラマーにありがちなミスでした。 今回の話はいくつかの教訓と実践Tip

    Node.jsで(なるべく)落ちないアプリを作ろう。 - from scratch
  • Express 4.0.0 でBASIC認証 - 日記とメモ

    4.0.0で実装方法が変わったらしい。以下の方法で動いた。 インストール $npm install basic-auth-connect Express var basicAuth = require("basic-auth-connect"); // middleware app.use(logger("dev")); app.use(bodyParser()); app.use(basicAuth("user", "pass")); app.use(express.static(__dirname + "/app")); app.use("/", router); 課題 特定のルートだけ認証させる方法がわからない。 参考サイト https://www.npmjs.org/package/basic-auth-connect https://github.com/visionmedia/

    Express 4.0.0 でBASIC認証 - 日記とメモ
  • express4でRESTful API作る - yutaponのブログ

    ちょっとnode.jsでAPIサーバ作ろうとして express4に上げたらいろいろと使い方が変わっていたので 備忘録的に書いておきます。 expressでのプロジェクトの作り方 ここを見ながらやるのが確実。 https://www.npmjs.org/package/express express3の場合 express3までは $ npm install -g express # グローバルにexpressコマンド入れて $ express appName # expressコマンドでひな形作成 .. $ node app.js # アプリケーション起動 こんな感じでexpressプロジェクトを作れましたが、 express4から結構変更されています。 express4の場合 express4ではひな形を作るコマンドが体から分離されました。 またアプリケーションの起動方法も変更されて

    express4でRESTful API作る - yutaponのブログ
  • 1