タグ

Node.jsに関するtsuwatchのブックマーク (81)

  • .mjs とは何か、またはモジュールベース JS とエコシステムの今後 | blog.jxck.io

    Intro 長いこと議論になっていた ES Modules の Node における扱いに一応の決着が付き、 .mjs という拡張子が採択された。 この拡張子の意味と、今後ブラウザと合わせて Universal JS を実装していく上での作法が見えてきたことになる。 合わせてエコシステムが対応していくことで、長年の夢だった JS のモジュール化を進めていくことができるだろう。 ES Modules 徐々に揃いつつある ES Modules(ESM) の仕様は TC39 で行われており、その仕様については主に以下のような部分になる。 import や export と行った構文 module 内はデフォルト strict mode module でスコープを閉じる module 内の this は undefined etc 逆に以下は TC39 での策定範囲外となる どう Module を読

    .mjs とは何か、またはモジュールベース JS とエコシステムの今後 | blog.jxck.io
  • Node.jsでのイベントループの仕組みとタイマーについて - 技術探し

    libuv/core.c at v1.x · libuv/libuv Cross-platform asynchronous I/O. Contribute to libuv/libuv development by creating an account on Git... タスク タスクは、同期タスクと非同期タスクの 2 種類存在します。 setTimeout(() => console.log(1)); setImmediate(() => console.log(2)); process.nextTick(() => console.log(3)); Promise.resolve().then(() => console.log(4)); (() => console.log(5))(); 同期タスク (() => console.log(5))(); 非同期タスク setTim

    Node.jsでのイベントループの仕組みとタイマーについて - 技術探し
  • V8の基本的なAPIを学ぶ - Qiita

    PLAID Advent Calendar 2017 の17日目。今回はV8についてです。 記事の内容 V8を使った簡単なソースコードを読む 注)V8自体のソースではない そこで使われているコードについてV8のwikiやV8 API Reference Guideで調べる 注)TurboFan/Ignition などの熱い部分には触れていない 前提知識 JavaScriptを知っている C++は知らなくてもいい Web開発をしたことがある 背景 弊社プレイドが提供しているKARTEというサービスの管理画面ではブラウザとしてGoogle Chromeを使用していただくことを推奨しており、またそのKARTEのサーバーサイドでは主にNode.jsを使用しています。つまりその内部で動いているV8にはがっつりお世話になっています。そこで、V8のAPIについて少しでも理解しておくことでV8、Node.

    V8の基本的なAPIを学ぶ - Qiita
  • Node.js Performance 改善ガイド - from scratch

    Node.js Performance 改善ガイド Memory の場合 メモリリークかどうかを特定する メモリリークではない場合 CPU の場合 どこの処理に時間がかかっているのかを確認する v8 simple profiler flame graph を取得する File の場合 大きなサイズのファイルをどうしても扱う時 Network の場合 keepalive を on にする その他: 全体的にパフォーマンスを改善するためにやること JIT が効いているかを確認する clusterが使えないか検討する C++ addons vs JavaScript libraries まとめ 参考資料 Node.js Performance 改善ガイド この記事は Node.js 2 Advent Calender の 5日目の記事です。 qiita.com Node.js のパフォーマンスに

    Node.js Performance 改善ガイド - from scratch
  • 橋本商会 » Node.jsでRICOH THETAを操作する

    node.jsでRICOH THETAを操作できるnpmを作った。nodeが入ってるMacLinuxをWiFiでTHETAに接続して使う。 https://github.com/shokai/node-ricoh-theta https://www.npmjs.com/package/ricoh-theta 不具合・質問などはtwittergithubのissueにお願いします。 ネットを探した感じだと、thetaのシャッターを切るコード片は色々な言語で実装されてた。 でもそれらはちゃんとPTP-IPのコネクションやセッションを管理せず撮影命令のパケットを送るだけなので、撮影した写真を吸い出したり、リスト取得、削除はできない。 そこでptp.jsにそれらの機能を追加して、それをさらにラップしてricoh-theta npmを作った。 インストール グローバルにインストールするとthet

    橋本商会 » Node.jsでRICOH THETAを操作する
  • Node-v0.10.34がはまったクロスルート証明書とOpenSSLの落とし穴 - ぼちぼち日記

    既に12月22日ですが、このエントリーは、Node.js Advent Calendar 2014の13日目のエントリーです。 いや私が書くの遅れたわけじゃないですけど…(言い訳)、ちょうどタイムリーなネタがあるので、先日リリースされたNode-v0.10.34で発生した(現在も継続している)問題について携わった経緯を自分の目線で書いてみます。 追記:日時間の12/24にNode-v0.10.35がリリースされました。 http://blog.nodejs.org/2014/12/23/node-v0-10-35-stable/ 記事の不具合も修正されています。 1. Node-v0.10.34リリース直後にissue発生 先週12/17にNode v0.10.34 (Stable)がリリースされました。10月中旬にPOODLE騒ぎでOpenSSLに対応した Node-v0.10.33

    Node-v0.10.34がはまったクロスルート証明書とOpenSSLの落とし穴 - ぼちぼち日記
  • Loopbackフレームワーク入門 | Now or Never

    Node.js Advent Calendar 2014の9日目の記事です。 ブログ記事を上げるのが遅くなってすみません。 今回は、Node.jsのWAFであるLoopBackの使い方について簡単に紹介しようと思います。使ってみた感触としては、ORMがすごく優秀で、RestAPIを自動で生成してくれたりと非常に強力なフレームワークだと感じました!では紹介していきます。 loopback とは loopback とは StrongLoop という mBaaS (Mobile Backend as a Service) を事業としている会社がOSSとして公開しているNode.js の isomorphic な Webフレームワークのことです。 公式ページに書かれている特徴は以下のとおりです。 LoopBackは高い拡張性があるNode.jsのフレームワークである - 動的なRestAPIを生成

    Loopbackフレームワーク入門 | Now or Never
    tsuwatch
    tsuwatch 2014/12/10
    model定義するとRESTAPIとそのドキュメントを自動生成してくれるisomorphicなWebフレームワーク
  • nginx最大パフォーマンスを出すための基本設定 | Node.js技術

    解説 worker_processes auto; - Nginx体のプロセス数、autoにしてnginx内部判定に任せるのは賢明 worker_rlimit_nofile 100000; - workerプロセスが最大に開けるファイル数の制限。このように設定したら、ulimit -a以上のファイル数を処理できるようになり、too many open files問題を回避できる worker_connections 2048; - 一つのworkerプロセグが開ける最大コネクション数 multi_accept on; - できるだけクライアントからのリクエストを受け取る use epoll; - Linuxカーネル2.6以上の場合はepoll、BSDの場合kqueue server_tokens off; - セキュリティ対策です、エラー画面のnginxバージョン番号を非表示 sendf

  • 今日から始めるNode.jsコードリーディング - libuv / V8 JavaScriptエンジン / Node.jsによるスクリプトの実行 | Tokyo Otaku Mode Blog

    ソフトウェアを正しく理解する唯一の方法はコードを読むことです。 ドキュメントを読めばそのソフトウェアが何を実装しているか分かりますが、どのように実装されているかまでは分かりません。 開発中に何らかのトラブルに悩まされたときや、効率的なコーディングをしたいと思ったとき、下位レイヤのソフトウェアを理解しておけば素早く対処できるシーンが多くあります。 ただ、コードを読むことは簡単なタスクではありません。 現代的なソフトウェアはそれなりの規模のコードを含んでいることがほとんどです。アーキテクチャ間の差異を吸収するためのコードなど、質的な機能を理解する上ではあまり重要ではないコードも含まれています。 何らかの問題が発生してからコードを読もうと思っても、準備なしでは関連する箇所を探すだけでかなりの労力が必要な作業となります。 従って、普段からコードを読んでおくことが重要です。 また、コードを読むにあ

    今日から始めるNode.jsコードリーディング - libuv / V8 JavaScriptエンジン / Node.jsによるスクリプトの実行 | Tokyo Otaku Mode Blog
  • power-assert, mechanism and philosophy

    power-assert, mechanism and philosophy Takuto Wada (a.k.a @t_wada) Nov 15, 2014 @ Nodefest Tokyo 2014Read less

    power-assert, mechanism and philosophy
  • CGI、マルチスレッド、シングルスレッド+イベント駆動そしてNode.js - wyukawa's diary

    僕はNode.jsとはそんなに関わりはなくてshibを使っているのが唯一の接点なんだけど、http://mozaic.fm/post/99334017903/10-node-jsを聞いてたら大変に面白かったので面白かった部分について書く。 このpodcastは全部で2時間以上あって全部聞くのはなかなか辛いんだけどw 僕が面白いと思った部分はCGI -> マルチスレッド -> シングルスレッド+イベント駆動 という技術歴史的な経緯のあたりです。 インターネットが出た当初は同時アクセス数も少ないのでCGIが一般的でリクエストがくるたびにプロセスが起動してさばくというモデルで全然問題がなかった。 それがECサイトとか出てきて同時アクセス数が増えてくるとCGIモデルが辛くなってきたので、リクエストをスレッドでさばくマルチスレッドモデルが登場した。 余談だが僕が2002年に社会人になってServl

    CGI、マルチスレッド、シングルスレッド+イベント駆動そしてNode.js - wyukawa's diary
  • setIntervalの中でエラーが飛ぶとタイマーが停止する - Qiita

    サーバーとの定期的な疎通確認を setInterval で実装してたら、いつの間にか処理が停止してたという話。 setIntervalの中でエラーが飛ぶとタイマーが停止する。 ΩΩΩ process.on('uncaughtException', function (err) { console.error(err.stack); }); setInterval(function () { JSON.parse('{}}}'); // throw }, 1000); setInterval(function () { console.log('xxx'); }, 1000); $ node a.js SyntaxError: Unexpected token } at Object.parse (native) at null.<anonymous> (/home/ajido/a.js:6

    setIntervalの中でエラーが飛ぶとタイマーが停止する - Qiita
  • #10 Node.js | mozaic.fm

    #10 Node.js Theme 第10回目のテーマは Node.js です。 今回は唯一の日人 Node.js コミッタである @koichik さんと、日 Node.js ユーザグループの現代表である @yosuke_furukawa さんをお迎えし、 Node.js をテーマに 「Node.js ができた理由」から、「node@1.0」の展望「nodeconf.eu での最新事情」や「Node.js コミュニティの今後」などを二時間半たっぷり議論しました。 また、危なげな運用で続けてきた mozaic.fm も、一つ目の目標だった 10 回を達成することができました。これも、購読/出演、してくださった皆様のおかげです。これからもしばらくは続けたいと思いますので、よろしくお願いします。 エピソードの感想などは、 #mozaicfm までお願いします。 Guest @koichik

    #10 Node.js | mozaic.fm
    tsuwatch
    tsuwatch 2014/10/09
    聞いた
  • そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する

    3. Nodeの歩み(参考) 2007/10 libev公開 2010/08 nodejs_jp開始 2008/05 libeio公開 2010/09 no.de開始 2009/09 Google V8公開 2010/11 Joyent管轄へ 2009/02 ry Node開発開始 2011/02 node-v0.4.0リリース 2009/05 node-v0.0.1リリース 2011/03 東京Node学園#1 2009/06 nodejs ML開始 2011/10 東京Node学園祭 2009/10 npm公開 2011/11 node-v0.6.0リリース 2009/11 JSConf EU ry発表 2011/12 Azureサポート 2010/04 Herokuサポート 2012/01 isaacs管理へ 2010/08 node-v0.2.0リリース 2012/06 node-

    そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
  • Node.jsのコールバック地獄をPromiseやGeneratorを使って解消する | POSTD

    下のようなコードが、親しみをこめて「コールバック地獄」とか「死のピラミッド」とか呼ばれているのはご存じですよね。 doAsync1(function () { doAsync2(function () { doAsync3(function () { doAsync4(function () { }) }) }) この状態がコールバック地獄かどうかは、意見の分かれるところでしょう。ネストがいくら深くても全く問題がないコードもあるからです。非同期のコードでフロー管理ができないほど複雑になってしまった場合は悪夢ですが。自分のコードがどの程度”ひどい”状態に陥っているかを確認するには、こう自問してみてください。「 doAsync1 の前に doAsync2 が実行された場合、リファクタリングにどこまで労力がかけられるか」と。ここでのゴールはネストの階層を減らすことではなく、モジュール化された(も

    Node.jsのコールバック地獄をPromiseやGeneratorを使って解消する | POSTD
  • LDRがなくなるとのことで俺用フィードリーダー作った - mizchi's blog

    2日で作った。昨日から無職なので手が空いてたのもある。 こんなの mizchi/my-feed-reader 概要 nodeでクローラ100行、サーバー40行、クライアント400行ぐらい。テストはない。cssもない。 認証とかなくて、ローカルで動かすの前提。LDRのexport.xml(opml)を読み込む。詳しくはREADMEで。 jksaでフィードを移動する。sで飛ばした時に未読フラグつけてる。oでバックグラウンドで開く。 大事なことなんだけど、マウス操作は一切対応してない。 データベースは使ってない。サーバーでインメモリで抱えてる分だけ降ってきて、既読管理は最後に読んだフィードの更新日時をlocalStorageで持ってて新規フィードもらうたびに比較してる。雑な設計。 技術的な話 Koa, React, Generatorとか自分が使いたい技術を適当に使った。 Reactで雑に作るの

    LDRがなくなるとのことで俺用フィードリーダー作った - mizchi's blog
  • Node.jsエンジニアなら2014年内に知っておきたいPromise入門 | Tokyo Otaku Mode Blog

    Promiseは非同期処理をベースにした並列処理の実装方法の一種です。Promiseでは並列処理の各タスクが必ず1回実行されることが保証され、タスクとタスクからの結果を取得する処理を分離することできます。また、タスクの並列処理/直列処理をユーザーが自由に制御することができます。 ECMAScript Language Specification 6th EditionにPromiseが追加されたことから、しばらくの間JavaScriptの非同期処理に関する話題の中心はPromiseになると思われます。 Node.jsでも既にPromise対応したモジュールも多く、Promiseでのみ非同期処理を提供しているモジュールも存在します。Promiseを使用する機会は今後必然的に増えていくでしょう。 今回のエントリーでは、Node.jsでPromiseを使用する方法を説明します。コード例を中心に理

    Node.jsエンジニアなら2014年内に知っておきたいPromise入門 | Tokyo Otaku Mode Blog
  • 「for やめろ」またはイベントループと nextTick() - Block Rockin’ Codes

    ものすごく遅レスですが、LLDiver で @esehara さんの LT であった話。 forやめろ、あるいは「繰り返し」という呪縛から逃れるために 簡単に言うと、 1~10 までを出力する方法を複数考えるというもの。 for, while, 再帰, goto etc.. と出て、途中で終わっちゃったので結論はよくわかりませんでしたが、 Node ではどれも使わずにできるな、と思ったのでちょっと例を出してみます。 ちなみに、タイトルでネタバレしている通りイベントループの話です。 そしてよくある「イベントループとは何か」「なぜ止めてはいけないのか」「process.nextTick() とは何か」「setImmediate() と何が違うのか」 などを解説する良い例だったので、書いてるうちに実はそっちがメインの解説となりました。 サンプルの実行結果は Node v0.11.13 です。(書

    「for やめろ」またはイベントループと nextTick() - Block Rockin’ Codes
  • Node.js Best Practices - RisingStack Engineering

    Join 150K+ monthly readers. In-depth articles on Node.js, Microservices, Kubernetes and DevOps. We get asked about Node.js best practices, tips all the time – so this post intends to clean things up, and summarizes the basics of how we write Node.jsNode.js is an asynchronous event-driven JavaScript runtime and is the most effective when building scalable network applications. Node.js is free of lo

  • Node.js を選ぶとき 選ばないとき

    4. @tricknotes I am a software developer who love JavaScript and Ruby. http://tricknotes.hateblo.jp/

    Node.js を選ぶとき 選ばないとき