タグ

node.jsに関するfield_combatのブックマーク (32)

  • 0から始めるNode.jsパフォーマンスチューニング

    近年の Node.js は API のサーバとしてはもちろん、Nuxt.js や Next.js といった SSR や BFF などフロントエンドのためのバックエンド言語としての人気が高まっています。 フロントエンドエンジニアがコンテキストスイッチ少なくバックエンドの整備ができることは非常に大きな利点です。 ですが、フロントエンド(ブラウザ側)とバックエンド(サーバ側)ではパフォーマンスチューニングで見るべき点が大きく違います。 しかし Node.js アプリケーションのパフォーマンスイシューの見つけ方などがまとまっている資料は少ないです。 そこで、記事ではフロントエンドエンジニアが Node.js でパフォーマンスイシューを見つけ、改善するため自分が普段パフォーマンスチューニングを依頼されているときにみている基礎的なポイトをまとめていきます。 1. 計測ステップlink Node.js

    0から始めるNode.jsパフォーマンスチューニング
  • ブラウザ、Node.js、メモリ上で動くlocalStorageライブラリ

    シンプルなストレージとしてlocalStorage的なものが欲しくなることはよくあるのですが、Node.jsで動かなかったり、インメモリ版が欲しくなったりと色々な状況があります。 毎回そういうときに考えるのが面倒だったので、modeで全部の状況を切り分けできるlocalStorageのponyfill的なライブラリを作りました。 ponyfillとはmonkey patch的にグローバルを書き換えるのではなく、同じAPIを持ったオブジェクトを返すようなpolyfillライブラリです。 azu/localstorage-ponyfill: Universal LocalStorage for browser and Node.js. インストール Install with npm: TypeScriptで書いてあるので、型定義ファイルは同梱されています。 使い方 Auto(Browser o

    ブラウザ、Node.js、メモリ上で動くlocalStorageライブラリ
  • Node.js における設計ミス By Ryan Dahl - from scratch

    Ryan Dahl は Node.js の original author ですが、彼の作ったプロダクト deno に関するトークが jsconf.eu 2018 でありました。 Node.js にずっと関わってきた僕が見て非常に興奮するような話だったので、しばらくぶりにブログに書き起こすことにしました。 背景 Ryan Dahl は2009年に Node.js の話を初めて公の場に公開しました。その時の「公の場」というのが「jsconf.eu 2009」です。 www.youtube.com Video: Node.js by Ryan Dahl - JSConf.eu - 2009 この発表から Node.js が広まり、今やサーバのみならず、IoTデバイス、デスクトップアプリなど、様々なところで動作しています。 で、今回はその発表から9年の歳月が経過し、Node.jsに対しての設計不

    Node.js における設計ミス By Ryan Dahl - from scratch
    field_combat
    field_combat 2018/06/07
    解説付きでわかりやすい
  • .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】足りないモジュールをたったの一行でインストールするコマンド - Qiita

    module.js:340 throw err; ^ Error: Cannot find module 'cookie-parser' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (path:5:20) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Func

    【Node.js】足りないモジュールをたったの一行でインストールするコマンド - Qiita
  • npm、一見無意味なパッケージを消したら1000件ものパッケージが依存するパッケージであったことが判明

    npm、一見無意味なパッケージを消したら1000件ものパッケージが依存するパッケージであったことが判明 npmが一見無意味に思えるfsというパッケージをSPAMとみなして削除したところ、1000件ほどのパッケージが依存するパッケージだったので、削除を取り消した。 npm, Inc. Status - "fs" unpublished and restored 今日、数分ほど、"fs"というパッケージが、ユーザーからSPAMであるという報告を受けて、レジストリから非公開にされた。これは現在復旧されている。これは私(@seldo)による人為的なミスである。私は非公開が安全であるかを確認する内部のガイドラインに従っていなかった。ビルドが阻害されたユーザーに謝罪する。 詳細:"fs"というパッケージは、無意味なパッケージである。これは単に"I am fs"をログに残して終了する。このパッケージが何

  • ゼロからはじめるExpress + Node.jsを使ったアプリ開発 - Qiita

    Expressとは? Node.jsは言わずとしれたサーバーサイドJavascriptの実行環境。 ExpressはそのNode.jsでの王道的な開発をスピードアップするためのフレームワークです。 Expressを使った開発効率向上の具体例としてREST APIの開発があります。REST APIを提供するWebサービスを開発する場合、URIやBodyを解析してリクエストの内容とデータを識別する必要があります。 例えば写真共有サービスを開発していて、とある写真を返すREST APIを提供する必要があるとします。このAPIが下記のようなフォーマットになるとします。 このAPIを提供するサーバーは上記URIから下記のようにリクエストの内容を解析する必要があります。 このリクエストは1枚の写真を要求している。 リクエストしている写真のIDはYOUR_PHOTO_ID。 これは例えば正規表現などのパ

    ゼロからはじめるExpress + Node.jsを使ったアプリ開発 - Qiita
  • Node.jsのセキュリティ・チェックリスト | POSTD

    (訳注:2016/1/5、いただいた翻訳フィードバックを元に記事を修正いたしました。) セキュリティ – 誰もが見て見ぬふりをする問題 。セキュリティが重要だということは、誰もが認識していると思いますが、真剣にとらえている人は少数だと思います。我々、RisingStackは、皆さんに正しいセキュリティチェックを行っていただきたいと考え、チェックリストを用意しました。皆さんのアプリケーションが何千人というユーザやお客様に使用される前にセキュリティチェックを行ってください。 ここに挙げたリストのほとんどは概略的なもので、Node.jsに限らず、全ての言語やフレームワークに適用することができます。ただし、いくつのツールは、Node.js固有のものとなりますので、ご了承ください。 Node.jsセキュリティ に関するブログ記事も投稿してありますので、こちらも是非読んでみてください。 構成管理 HT

    Node.jsのセキュリティ・チェックリスト | POSTD
  • Webページのテストやスクリーンキャプチャに便利な「PhantomJS」

    WordPressで学ぶPHP(1)変数・制御構造編」が発売されました。 「WordPressで学ぶPHP」シリーズの第1巻で、WordPressを通してPHPを学んでいくです。 このでは、PHPの基となる変数と制御構造について解説します。 Kindleで、定価500円です。 先日、twitterで@chacoさんと@riatwさんの以下のようなやり取りを見かけました。 @chaco Phantom.jsなるものが最近流行っているんだとか。 — Kentaro Suzukiさん (@riatw) 1月 11, 2013 そこで、PhantomJSについて調べてみました。 1.PhantomJSの概要 PhantomJSは、WebKitを組み込んだWebブラウザエミュレータのようなものです。 Webブラウザに対する一連の操作を自動化して、その結果を得ることができます。 自動化したい

  • Windows でツールを使わず Node.js の複数バージョンを共存させる - Qiita

    Windows で複数バージョンの node を使うためのツールとしてnvmw とか nodist とかありますが、それらを使わずに複数バージョンを共存させる方法。 メリット 意図しない node のバージョンが走ることを防げる デメリット デフォルトで node にパスが通っていない状態になるので起動が面倒になる やりかた まず、普通にインストーラを落としてきて起動します。インストール先を聞かれる段階になったら、下の画像のようにインストール先にバージョン番号を含めます。パスが短いほうが嬉しい人は、C:\node\v0.10.22 とかにしても構いません。 次に、インストールするコンポーネントを聞かれるので、Add to PATH だけ外します。これによって、意図せずに何らかのバージョンの node にパスが通った状態を防げます。 このままインストールを進めると、バージョン別の場所に no

    Windows でツールを使わず Node.js の複数バージョンを共存させる - Qiita
  • 結婚式二次会用に Node.js x ブラウザでタイピング対決アプリを作ってみた - 凹みTips

    はじめに 先月、友人結婚式の二次会でタイピング対決をしたいとの企画を、幹事の友人から受けました。面白かった要件としては、 二人の顔を 2 台のカメラで映したい タイピングしてる様子をリアルタイムで見たい というものです。これをサーバは Node.js で、クライアントはブラウザで作成しました。エントリ書いてもいいよ、と許可を頂いたので、今後似たような依頼を受けた方のご参考になるように、エッセンス部分をご紹介します。 (追記:2013/11/20) 幹事さんも記事を公開されました: http://tjun.org/blog/2013/11/wedding-typing/ やったこと ホスト PC 側で新郎新婦それぞれの PC からのログインを待ち受けします。イイ感じに○で切り抜いてくれるような PNG をイラレで作っておきました。 それぞれの PC からログインしてもらいます。 ログインし

    結婚式二次会用に Node.js x ブラウザでタイピング対決アプリを作ってみた - 凹みTips
  • Node.jsの問題点、デメリットと解決方法まとめ - Qiita

    技術選定のためや、俺が問題解決するぜっ!的な人向け。 順次解決されると思うので、順次更新します。 以下に上げたものも、解決策があるものが多いです。 はじめてのNode.js (2013年3月26日初版) どこか1か所CPUリソースを多く消費するような重い処理が入ると、全体のパフォーマンスが低下する マルチコア/マルチCPU環境を十分に生かすことができない コールバックを多用するためにコードが複雑になる merittyの記事 (2012年12年23日) Node.jsのメリットとデメリット | meritty [メリッティ] JavaScriptの限界、オブジェクト指向が不完全 マルチコアサーバで性能を十分に発揮できない 文法エラーが、サーバーの停止を引き起こす あるリクエストに問題があると、他のリクエストをブロックする ZEALOT社員の方 (2012年10月29日) 引用: Node.j

    Node.jsの問題点、デメリットと解決方法まとめ - Qiita
  • Rendr入門(1): Node.js + Backbone.jsでサーバ & クライアントを構築する"Rendr"の紹介 - Qiita

    Rendr入門(1): Node.js + Backbone.jsでサーバ & クライアントを構築する"Rendr"の紹介JavaScriptNode.jsBackbone.jsExpress.jsRendr はじめてQiitaで記事を書いています。先日「Node.js + Express.js + Backbone.js」でサーバとクライアントの両方のシステムを構築する"Rendr"というウェブフレームワークを試しました。Rendrは、アメリカで人気のサービス"AirBnb"のチームが開発し、オープンソースとして公開したものです。クライアント側での採用事例は増えているBackbone.jsですが、サーバでの利用は珍しいのでは無いでしょうか。Rendr自体もまだ日語での紹介例が無い事もあり、システムを紹介しつつ、使用感やメリット、そしてデメリットをメモしておこうと思います。 ※2回目を書

    Rendr入門(1): Node.js + Backbone.jsでサーバ & クライアントを構築する"Rendr"の紹介 - Qiita
  • フロントエンドエンジニアにおけるNode.jsのススメ | 1 pixel|サイバーエージェント公式クリエイターズブログ

    1 pixel|サイバーエージェント公式クリエイターズブログ サイバーエージェントのクリエイターの取り組みを紹介するオフィシャルブログです。最新技術への挑戦やサービス誕生の裏話、勉強会やイベントのレポートなどCAクリエイターの情報が満載です。 はじめまして!こんにちワン! スマートフォン版Amebaプラットフォームでフロントエンドの開発を担当している2012年入社の鳥山と申します。 そこで今回は、Node.jsを始める上で知っておくと便利な知識を現場での開発例を交えて紹介させていただきたいと思います。 想定している読者は、 ・普段HTMLCSSJavaScriptなどのクライアントサイドの開発をしている方 ・Node.jsに興味があり、始めてみたいと思っている方 ・サーバサイドプログラミングと聞くと身震いしてしまう方 です。 ※今回は、記事にも制限があるので、Node.jsについての説

    フロントエンドエンジニアにおけるNode.jsのススメ | 1 pixel|サイバーエージェント公式クリエイターズブログ
  • node.js と thread hog の話(3)

    [前回までの話へのリンク] ・node.js と thread hog の話(1) ・node.js と thread hog の話(2) では、なぜ今頃になって HTTP Server の c10k 問題(もしくは、thread hog 問題)が顕在化したのだろう。 当時(90年代の終わり頃)と比べて、もっとも大きく変わったのはCPUの性能である。クロック数は、数百MHzから数GHzへと一桁増えたし、マルチコア化もしている。CPU 性能だけ見れば、当時の数十倍の能力が出てしかるべきである。 しかし、実際の人生はそう簡単ではない。サーバーのパフォーマンスはCPU性能だけが決めるわけではないからだ。そこで、ボトルネックの一つとして注目されはじめたのが、thread の数なのである。 前回述べた様に、thread 一つあたり 2MB~8MB のスタック領域を仮想メモリ空間に確保しなければならな

  • 静岡でNode.jsハンズオンやった

    久々の静岡 横に広すぎるためにコミュニティが西と東に分断されており、内戦勃発中と噂されている静岡のコミュニティ(twitter情報)ですが、非武装地帯である静岡市で開催すれば、西からも東からもヒトが集まってきて楽しく過ごせますね。というか楽しかったです。 私のハンズオンですが、now.jsはmac,linuxはNode.jsが0.6系でも0.8系でも動くんですが、Windowsだと0.8系だと動かないようなので、0.6系で動かしてみてください。懇親会で指摘された部分なんかも修正したドキュメントにしておきました。 WIndowsでコンパイルする方法 コンパイルされたnow.jsを0.6系で使う方法 @k0sukeyさんがハンズオンの際にmongooseの説明をしてたので思い出したのだけど、fjkwもmongoose+Expressっていう構成です。こっちもシンプルなので簡単にコードが読めると

    静岡でNode.jsハンズオンやった
  • この完成度に震えが止まらない!Node.js史上最高のIDE、Cloud9をインストールしよう。

    Cloud9は、クラウド上で様々な操作ができます。無料でエディタ、デバッグ、バージョン管理etc、、、作ったらボタンひとつで公開までできてしまいます。有料にすれば、チーム開発環境、プライベート開発環境も構築できます。 Cloud9 IDEは、ソースコードで公開されています。せっかくですからこの高機能で美しいCloud9 IDEをローカル環境に構築してみましょう。 システム環境 Mac OS X Lion インストール手順 gitからダウンロードします。 $ git clone git://github.com/ajaxorg/cloud9.git Cloning into cloud9... remote: Counting objects: 30583, done. remote: Compressing objects: 100% (10271/10271), done. remote

    この完成度に震えが止まらない!Node.js史上最高のIDE、Cloud9をインストールしよう。
    field_combat
    field_combat 2012/02/01
    ブラウザで動くIDE。完成度高そう
  • 東京Node学園#3 Domains & Isolates

    そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解するshigeki_ohtsu

    東京Node学園#3 Domains & Isolates
  • node.jsとjQueryでスクレイピングするウェブアプリの作り方

    やっぱ jQuery 便利ですよ(*´・ω・)(・ω・`*)ネー セレクタ使って jQuery でダカダカやってると、DOM とか正規表現でネチネチやるのがバカらしくなっちゃいます。 と日頃から思ってたりしてまして、サーバサイド JavaScript がメインストリームになって、jQuery でウェブアプリをコーディングできれば超ラクできるかもと期待しています。 で、先日サーバサイドJavaScriptとjQueryでスクレイピングという記事をうpったところ、やっぱ Rhino じゃなくて node.js がえーんよ(´・ω・`)というコメントを頂きましたので、node.js と jQuery でサーバサイド JavaScript スクレイピングしてみることにしました。 今回は node.js ですので、単にスクレイピングする(コマンドラインから実行する)スクリプトだけじゃなくて、スクレイ

    node.jsとjQueryでスクレイピングするウェブアプリの作り方
  • Node.jsで簡単なブログを作ってみる

    Blog rolling with mongoDB, express and Node.jsの写経だが、このエントリはわかりやすいですね。 MongoDBって使いやすそうなので、SQLiteから乗り換えようかなと思ってちょっと調べたところMongoKitSQLAlchemyっぽいような気がしたんだけどどうなんだろうかねぇ。結局javascriptだとクラス関係ないしJSON(BSON)だからMongoとの相性がいいんだろうか?あとでもう少し調べてみよう。 さて、上のエントリのブログのサンプルで使われていたHTMLCSSのテンプレートエンジンが面白かったので調べてみた。 Jade zen-codingみたいなノリでサクサク書いていけるっぽい。 Jade - robust, elegant, feature rich template engine for nodejs Hamlっぽいとか

    Node.jsで簡単なブログを作ってみる