タグ

Node.jsに関するhohoho_ho2005のブックマーク (440)

  • Gopherの道を歩む – Node.jsからGo言語への移行 | POSTD

    私は大学時代に、興味位でJavaScriptを始めて、それ以来ウェブページを幾つか作成してきました。JavaScriptは常にC言語やJavaの合間の楽しい息抜きでしたが、アニメーションや、ユーザをあっと言わせるようなちょっとしたことを提供するといった、特殊な目的にかなり限られた言語だと考えていました。JavaScriptは覚えやすく、開発者に具体的な結果をすぐにもたらしてくれるので、コーディングする方法を学びたいと思っている人に私が教えた最初の言語でした。JavaScriptHTMLCSSを少し組み合わせれば、ウェブページが出来上がります。プログラミング初心者には喜ばれます。 その後、あることが2年前に起こりました。当時、私は、主にサーバーサイドのコードとAndroid用のアプリのプロトタイプに取り組む研究職に近い立場にいました。すぐにNode.jsの存在が目に留まりました。バック

    Gopherの道を歩む – Node.jsからGo言語への移行 | POSTD
  • Visual Studio CodeによるNode.jsのデバッグ(その1) | DevelopersIO

    1 はじめに 約1年前、アルファ版として登場した、Visual Studio Code(以下VS Code)ですが、昨年11月には、ベータ版となり、またオープンソースとしてコードも公開されました。 公開以来、毎月のように更新・強化されており、使用方法も微妙に変化して来ていますので、今回、改めて基的な使用方法をまとめてみました。 記事は、VS Codeがインストールされており、下記のコマンドで、起動できるようになっている事を前提に始めます。 $ code . もし、まだ、インストールされていない場合は、下記をご参照ください。 Setting up Visual Studio Code また、Node.jsについてもインストールが完了しているものとします。 $ node -v v5.9.0 2 簡単なサーバープログラムの作成 (1) プロジェクトの作成 プロジェクト名をSampleAppと

    Visual Studio CodeによるNode.jsのデバッグ(その1) | DevelopersIO
  • いまさら聞けないWebSocketとSocket.IOの基礎知識&インストール

    連載「Socket.IOで始めるWebSocket超入門」では、WebSocketを扱うことができるNode.jsのライブラリ「Socket.IO」を使って、サンプルアプリケーションを構築していきます。 具体的には、チャットを題材とし、送受信されるメッセージ内容が即時反映されるリアルタイムかつ双方向なWebアプリケーションの構築を目標とします。さらに構築の中で、Socket.IOの各種ライブラリの使い方について解説することで、Socket.IOを使ったWebSocketの実践方法を体系的に学びます。 いまさら聞けないWebSocketとは WebSocketはリアルタイムWeb技術の一種であり、リアルタイムかつ双方向な通信を実現するプロトコルです。WebSocket通信では、コネクション確立時にHTTPからWebSocketへプロトコルを切り替えます。1度コネクションが確立されると、「w

    いまさら聞けないWebSocketとSocket.IOの基礎知識&インストール
  • Webサービスを作りたい人に最適、たった1時間でJSベースのQAサイトを作る方法 - MEANスタック開発(3) - paiza times

    (English article is here.) こんにちは、吉岡(@yoshiokatsuneo)です。 MEANスタック(*)は、JavaScriptのみでフロントエンド、データベース、バックエンドの全てを開発できるWebサービス開発環境です。特にMEANスタックの一つAngularJS Full-Stack generatorでは、ウェブアプリケーション開発のノウハウが詰まっており、先人の知恵を生かすことで、見通しの良いソフトウェアを簡単・迅速に開発できるようになります。 ( * ) MEANスタックはMongoDB, Express, AngularJS, Node.jsを組み合わせています。 初回の記事ではMEANスタックの説明とインストールについて、2回目の記事ではTwitter風サービスの作り方について紹介しました。 今回は、具体的なウェブサービスとしてQAサービスを構築

    Webサービスを作りたい人に最適、たった1時間でJSベースのQAサイトを作る方法 - MEANスタック開発(3) - paiza times
  • Node.jsのClusterをセットアップして、処理を並列化・高速化する | POSTD

    Node.jsが多数のイベントの非同期な処理に長けていることはよく知られていますが、それが単一のスレッドで行われていることを多くの人は知りません。Node.jsは実際にはマルチスレッドではないので、リクエストは全て単一スレッドのイベントループで処理されているだけなのです。 そこで、Node.jsクラスタを使って、クワッドコアプロセッサの能力を最大限に引き出しましょう。コードの複数のインスタンスで起動し、さらに多くのリクエストを処理します。少し難しく思えるかも知れませんが、Node.js v0.8で導入された cluster モジュールを使えば、実はとても簡単です。 もちろん、これは、作業を別々のプロセスに分割することのできるアプリならどんなアプリにでも役立ちますが、webサイトのような多くのIOリクエストを処理するアプリには特に重要です。 残念ながら、並行処理は複雑なので、サーバ上でのアプ

    Node.jsのClusterをセットアップして、処理を並列化・高速化する | POSTD
  • React + Expressでのサーバーサイドレンダリング方法のまとめ - Qiita

    Reactのサーバーサイドレンダリング(SSR)の実装方法について、React単体のシンプルなものから、React Router, Reduxを組み合わせたものまでまとめます。 サーバーサイドはExpressを用います。 ※以下のJavaScriptのコードについて、クライアントサイドについてのみJSX + ES6形式でコーディングしており、webpackでcompileして利用しています React単体でSSR React単体でSSRを実現する場合は、ReactDOMServer.renderToStringを使用します。 参考にしたソース React単体のSSRを実装するにあたっては以下のソースを参考にしました。 react-server-example APP_PROPSを利用してfetchしたデータをクライアント側のjsと共有する点を参考にしました 静的な情報をレンダリングするパタ

    React + Expressでのサーバーサイドレンダリング方法のまとめ - Qiita
  • exports と module.exportsの使い分け - Qiita

    var hoge = require('./hoge'); var h = new hoge.Hoge(hoge.SPEC.FUGA); var x = hoge.util(h);

    exports と module.exportsの使い分け - Qiita
  • Node.jsについて調べてみた - Qiita

    この雑な文章は、2015年5月中旬頃に調べていた内容をほじくり返してきたものです。あしからず。 はじめに 何だか当たり前のように聞くようになったNode.jsですが、よくわからないので調べてみました。 ほぼ全く知らない状態から調べてます。ぜひ間違いや補足等あればご指摘よろしくお願いします。 Node.jsってなに? Node.jsはサーバサイドJavaScriptです。ノンブロッキングI/Oとイベントループという二つのモデルにより、大量の処理に対応できます。 この時点で「サーバサイドJavaScriptってなに?」「ノンブロッキングI/O?イベントループ?」と分からないことだらけなので、まずは四の五の言わず試してみます。 Node.jsでWebサーバを立ててみる Node.jsのインストールは、anyenvから行います。今回は最新版である0.12.2をインストールしました。 (注意・今現在

    Node.jsについて調べてみた - Qiita
  • 可読性アップのためのes2015入門 - Qiita

    さてjavascriptを書いている皆さん、 es2015への対応準備はいかがでしょうか? 個人的には 2016年こそがes2015元年になるのではないか(ややこしい)という見立てでおります。 無論、ブラウザ自体の対応はまだまだなのですが、 ブラウザ互換のjavascriptに変換してくれるBabelも(あるていど)安定し、 browserify等々との連携も便利になってきたこの頃、意識しなくても使えるようになってきたのでは、というこのごろです。 「そうは言っても、来ブラウザで動かないし、javascriptに新しい機能が付くわけでもないし、使うメリットなんてそんなにないのでは?」 と思う方もいるかもしれません。自分もしばらくそう思ってました。 しかし明確なメリットが一つあります。 javascriptならではの読みづらい部分を、圧倒的に読みやすく書き直せることです。 そんなわけでこの記

    可読性アップのためのes2015入門 - Qiita
  • KoaでWeb開発: Koaの検証を通じてミドルウェアの概念を理解する - Qiita

    はじめに 動機 やっすいサーバでしかしパフォーマンスは出て、しかも大量のリクエストが来ても大丈夫なサービスを立ち上げたい。。。 そんなわがまま放題な欲求を満たすためにはやはりnode.jsで動作するアプリケーションがいいんじゃないのか、と思ったのです。 しかし、非同期とか超苦手だし・・・と思っていたところに、このKoaというフレームワークが来たわけです。 これまで、何回にもわたって、ES2015の話題を出してきたのは、ひとえにこいつを使うためでした。 ミドルウェア? しかし、Koaの説明の中で、頻繁に「ミドルウェア」というキーワードが出てきます。 自分のこれまでの認識だと、「DB」とか「Apache」とかのを表しているのかと思いましたが、どうも違いそうだと。。。 で、検索してもミドルウェアという言葉の意味がわかっている前提で述べられているものばかり。。。 こいつを自分の中で理解できないかぎ

    KoaでWeb開発: Koaの検証を通じてミドルウェアの概念を理解する - Qiita
  • Node.jsからSocket.IOを使うための事前知識 - Qiita

    Node.jsからSocket.IOを使う上で知っておくべきWebSocketの背景やSocket.IOの知識についてまとめてみました。 後半はインストール方法とサンプルになります。 1. Socket.IOとは 1.1. HTTP クライアントからサーバーにリクエストを送り, サーバーはそれに対してレスポンスを返すというプロトコルです。 サーバーからクライアントに対してリクエストや通知を送信する方法は用意されていません。 1.2. ポーリング クライアントからサーバーに定期的にリクエストを送信する方法。 無駄なリクエストが増えてしまうという欠点があります。 1.3. WebSocket 2011年にRFC6455で仕様が提案されたサーバーとクライアントの双方向通信用のプロトコルで, 非同期かつ双方向の通信を可能にしています。 ブラウザのバージョンによってはサポートしていないものもあるので

    Node.jsからSocket.IOを使うための事前知識 - Qiita
  • Node.jsでcluster環境でのlogging - Carpe Diem

    概要 cluster環境では複数のプロセスが並列に動きます。 この状態で1つのログファイルにアクセスすると干渉が起きます。 かと言って各プロセス毎にログファイルを作成してしまうのは集約が面倒です。 今回はlog4jsを使ってその問題を解決します。 環境 Node.js 5.1.0 log4js 0.6.28 フォルダ構造 . ├── app.js ├── config.js ├── logger.js ├── master.js ├── package.json ├── public ├── routes ├── server.js ├── views └── worker.js cluster環境を用意 以下の3つのファイルを主に使用します。 ファイル 役割 server.js masterとworkerを区別して起動 master.js workerをspawnする worker.js

    Node.jsでcluster環境でのlogging - Carpe Diem
  • initd-foreverでNode.jsアプリをデーモン化する | DevelopersIO

    ども、大瀧です。 最近Node.jsで作ったアプリをシステム起動時に自動起動させることが良くあるのですが、/etc/rc.localにnode <SCRIPT_NAME>と直書きするのも使い勝手が良くないかなと思い、foreverとSysVinitを連携させるinitd-foreverというツールを試してみたのでレポートします。 initd-foreverとは Node.jsのプロセスマネージャーとしてはforeverが著名ですが、Linuxの枯れたシステム管理サービスのSysVinitからforeverをキックするスクリプトを生成するのがinitd-foreverです。foreverと同じく、npmでインストールします。 $ npm install -g forever initd-forever npm WARN optional dep failed, continuing fsev

    initd-foreverでNode.jsアプリをデーモン化する | DevelopersIO
  • Node.js 入門 http://glide.so/meso/6805914

    slide.md Node.js 入門 清水俊博(@meso) 株式会社ドワンゴ 技術コミュニケーション室 Node.js 日ユーザグループ Node.js とは何か Webブラウザ外で動作する、ノンブロッキングI/O環境上に構築されたJavaScriptの実行環境(プラットフォーム) いわゆる"サーバサイドJavaScript"の1つ サーバサイドJavaScript Node.js 以外にも従来からいくつも存在 Netscape Enterprise Server, IIS+JScript, Helma Aptana Jaxer, Narwhal, RingoJS 流行らなかった JavaScriptがしっかりしたプログラミング言語として認められてなかった時代 「別にサーバサイドまでJavaScript使いたいと思わないんだけど」で玉砕 Node.jsの目的は「サーバサイドでJava

    Node.js 入門 http://glide.so/meso/6805914
  • どの非同期処理が良いのか勝負

    JSオジサンで発表した資料です。

    どの非同期処理が良いのか勝負
  • Docker コンテナごと Node.js アプリケーションをホットデプロイする方法 | Tokyo Otaku Mode Blog

    こんにちは。Tokyo Otaku Mode(以下 TOM)ソフトウェアエンジニアの稲田です。 TOM が運営している otakumode.com は現在 1 日約 3、4 回ほどの頻度で更新されています。 これを多いと見るか少ないと見るかは人によって違うと思いますが、デプロイのたびにサイトにアクセスできない状態になっていては、まともなサイト運営とは言えないでしょう。 そこで、サイトへのアクセスを一瞬も止めることなくデプロイする、いわゆるホットデプロイと呼ばれるものが必要になります。 TOM ではアプリケーションサーバーに Node.js を使っており、既に Cluster モジュールを使った独自のホットデプロイの仕組みが実装されています。 今回はこのホットデプロイを Docker と Node.js でもできるようにしていきます。 Docker とは Docker, Inc.(旧 dot

    Docker コンテナごと Node.js アプリケーションをホットデプロイする方法 | Tokyo Otaku Mode Blog
  • Node.jsの「構築事例」、そして「向いていること」と「向いてないこと」 - Qiita

    Node.jsはシングルスレッド、ノンブロッキングI/O、イベントループなどの特徴があり、「向いていること」と「向いていないこと」があると思います。 言語選定の際に使えるメモとして、Node.jsの構築事例も加えてまとめてみました。 Node.jsに「向いていること」 処理が短時間でイベント処理が重要なアプリ 例えば、チャットアプリなどの大量のアクセスのあるリアルタイムなネットワークプログラミングが得意 シングルCPUのサーバー シングルCPUの環境化でもその性能を十分使い切れるため、比較的性能の小さいサーバ上で大きなパフォーマンスを発揮できる Node.jsに「向いていないこと」 CPU負荷の高い処理 CPUリソースを大量に必要とするJavaScriptの処理を行うとイベントループが回らない状態になり、イベントハンドリングが行えない状態に陥る。このため、CPU処理が大量に必要とされるアプ

    Node.jsの「構築事例」、そして「向いていること」と「向いてないこと」 - Qiita
  • Node.js Is Dead - なぜ私がNode.jsを捨ててElixirに切り替えたのか-

    タイトルは釣りです。すいませんほんと。 2015年12月0c8日に行われたAktsk Tech Meetup #1: Elixir & GraphQLで発表した際の資料です。 === Node.js+Koaで開発していたサービスを、なぜリリースせずにElixir+Phoenixに書き換…

    Node.js Is Dead - なぜ私がNode.jsを捨ててElixirに切り替えたのか-
  • Node.js 実践講座 〜基礎編〜 その1 - Qiita

    この記事では年末のNode.jsセミナーに向けて作成している記事の一部を紹介します。 はじめに Node.js 実践講座は下記の3編より構成されます。 基礎編: Node.jsの基的な使用方法について解説 事例編: 具体的な事例に対するNode.jsの活用方法について解説 応用編: Expressを使用したWebアプリケーション開発 基礎編では下記の内容を解説します。 Hello, world! 標準ライブラリの使用方法 モジュールの使用方法 npmの使用方法 第1回目はHello, world!の作成を通じてNode.jsによるCLIアプリケーションの作成を解説します。 ワークスペースの作成 mkdir workspace mkdir workspace/js mkdir workspace/basic mkdir workspace/basic/01-hello-world touc

    Node.js 実践講座 〜基礎編〜 その1 - Qiita
  • LoopBack資料まとめ - Qiita

    2016/09/03更新 以下の資料は、StrongLoopがIBMに買収される前のものであるため、 記述が古くなっている可能性が高いです。 IBMはLoopback資産を利用した「API Connect」というツールを提供しており、 ドキュメントはそちらを参照したほうがいいように思われます。 API Connectについては、以下の記事が参考になると思います。 LoopBackとは 実態はExpressと、Webアプリ作るときに便利なコンポーネントをくっつけたものであり、それぞれのコンポーネントは単体でも使えたりする。 Express単体だとシンプルだけど、そこからmodelsフォルダ掘ったり、ユーザテーブル作ったり、MongooseとかPassportとかくっつけて使うと結局ごてごてしてしまう。 それなら最初からLoopBack使ってもだいたい同じような構成にまとまるそうな。 (なんか

    LoopBack資料まとめ - Qiita