タグ

Node.jsに関するNagataniのブックマーク (32)

  • いまさら聞けないNode.js | さくらのナレッジ

    こんにちは!小田島です。さくらのナレッジで初めて記事を書きます。よろしくお願いします! 先日5月13日、Deno 1.0がリリースされました。Denoについては後日記事を書きますが、今回はDenoが生まれるきっかけとなったNode.jsについて、いまさら聞けないことを色々書いていきます。 対象者 記事は、Node.jsについて以下のような疑問を持っている人が対象です。 Node.jsって何? Node.jsを使うと何がうれしいの? Node.jsを使うときに何を注意すればいいの? なお、記事はNode.jsのイメージを掴んでもらうのが目的であり、ハンズオンではありません。そのためコードは1行も出てきませんのでご了承ください。 そもそもNode.jsとは? 超ざっくり説明すると、JavaScriptの実行環境です。 それまではJavaScriptといえばウェブブラウザー上で動かすのが普通

    いまさら聞けないNode.js | さくらのナレッジ
  • Node.js Best Practices - How to become a better Node.js developer in 2018 | Gergely Nemeth

    Node.js Best Practices - How to become a better Node.js developer in 2018 It became a tradition for me in the past two years to write recommendations for the next year on how one can become a better Node.js developer. This year is no exception! 🤗 If you are interested in my past new years' recommendations, you can read them on the RisingStack blog: How to Become a Better Node.js Developer in 2016

    Node.js Best Practices - How to become a better Node.js developer in 2018 | Gergely Nemeth
  • --headless時代の本命? Chrome を Node.jsから操作するライブラリ puppeteer について - Qiita

    --headless時代の命? Chrome を Node.jsから操作するライブラリ puppeteer についてJavaScriptChromee2e puppeteer はHeadless Chrome をNode.jsで操作しやすくしたライブラリです。今日(※ 2017/8/17)一日で凄い勢いでGitHubのトレンド入りしており、TLでも話題になっていたので、早速触ってみました。 Node.jsでChromeを操作するというコンテキストにおいては、Nightmare.jsと同じレイヤに属するプロダクトですね。Nightmare.jsはElectronを介在させることで、Chromeの操作を実現していましたが、今年の5月にChromeでheadlessモードが利用可能になって以降1、headless Chromeを直接操作するライブラリが色々と出始めていますね。この系統は、chr

    --headless時代の本命? Chrome を Node.jsから操作するライブラリ puppeteer について - Qiita
  • Evolution of Electron(日本語)

    (このトークは @kohei-takata が通訳しました。) 皆さんこんにちは。今日、私は、どのように Electron が生まれ、有名になっていったかについて話したいと思います。 Kohei TAKATAさんにトークの内容を翻訳してもらったので、私は日語でこのトークを行う(おこなう)ことができます。ありがとうございます。 はじめに、自己紹介をしたいと思います。私は3つの名前を持っています。中国では、 ちょうせい と呼ばれています。アメリカでは、 Cheng Zhao と呼ばれています。これは、英語表記の名前です。しかし、日では私の名前は ジャオ チェン になります。これは英語名のカタカナ表記になります。このように、私は同じ意味の3つの名前を持っています。 私は Electron の作者(さくしゃ)です。今は GitHub で働いています。今も Electron の開発を続けています

  • Node.js における Promise を使った例外処理 - from scratch

    さて、 Node.js のエラーハンドリングは難しいと言われてますが、 2016年現在、つまりNodeの v4 とか v6 が主流になり、 Promise が基的な処理として採用されている状況ではどうでしょうか。ちょっと考えてみます。 一応これの補足です。 qiita.com TL;DR 未だに難しい。ただし、 Promise で改善されている。async-await や zone まで来たらかなり楽になる。 あと、 unhandledRejection が uncaughtException よりも酷いことにならないので、大分マシになっている。 Node.js のエラーハンドリングの難しさ まず JavaScript には同期と非同期のエラーハンドリングのやり方があります。前者は所謂 try-catch による方法、後者は callback を使って第一引数で実現する方法や emit(

    Node.js における Promise を使った例外処理 - from scratch
  • ElectronアプリのXSSでrm -fr /を実行する - Qiita

    Electronアプリでxssを発生させると任意のコードが実行できるらしいのでrm -fr /を試してみます。 想定 web版とelectron版のあるチャットアプリケーションという設定です。攻撃者が用意したリンクをクリックすると、PC内のすべてのファイルを消し去るというシチュエーションを考えてみます。 用意 環境はホストmac OSX、ゲストにubuntu14.04環境をvagrantを利用し用意しました。 expressでリストとフォームからなる脆弱性のあるチャットをつくります。エスケープ処理をしてないので、任意のコードが実行できる状況です。 'use strict'; const path = require('path'); const express = require('express'); const app = express(); const ejs = require(

    ElectronアプリのXSSでrm -fr /を実行する - Qiita
  • Node.jsでのJavaScriptメモリリークを発見するための簡単ガイド | POSTD

    目次 初めに 極小理論 ステップ1. 問題の再現と確認 ステップ2. 最低3回のヒートダンプ採取 ステップ3. 問題の発見 ステップ4. 問題解決の確認 他のリソースへのリンク まとめ Something you might want to bookmark: Simple Guide to Finding a JavaScript Memory Leak in Node.js by @akras14 https://t.co/oRyQboa8Uw — Node.js (@nodejs) January 6, 2016 注釈:お気に入りに登録してください。 Simple Guide to Finding a JavaScript Memory Leak in Node.js (Node.jsでのJavaScriptメモリリーク発見簡単ガイド) @akras14 http://www.ale

    Node.jsでのJavaScriptメモリリークを発見するための簡単ガイド | POSTD
  • Nodal — API Services Made Easy With Node.js

    What is Nodal? Nodal is a web server for Node.js, optimized for building API services quickly and efficiently. Boasting its own opinionated, explicit, idiomatic and highly-extensible framework, Nodal takes care of all of the hard decisions for you and your team. This allows you to focus on creating an effective product in a short timespan while minimizing technical debt Nodal projects are ready to

    Nodal — API Services Made Easy With Node.js
  • 今からでも間に合う!Node.js v4&v5は何が変わったか?

    Node.js v4リリースに向けて とうとうメジャーバージョンアップにされたNode.jsである、Node.js v4がリリースされました。今回はこのNode.js v4がこれまでのNode.js v0.12やv0.10と比較してどう違うのかを解説します。また、最新ではv5もリリースされていますので、合わせてお伝えしていきます。 なんでいきなりv4なのか おそらく一番最初に抱く感想は、v0.10とかv0.12みたいな数字からv1.0を飛ばして、なんでいきなりv4.0がリリースされたのかという疑問だと思います。これにはio.jsというプロダクトが関係しています。 2014年の年末、io.jsというプロダクトが発表され、2015年の初めにv1.0がリリースされました。io.jsというのは Node.js のforkで別リポジトリによって実装されたプロダクトです。io.jsの詳細は筆者のブログ

    今からでも間に合う!Node.js v4&v5は何が変わったか?
  • Node.js v5.0 がリリースされました。 - from scratch

    Node.js v5.0 がリリースされました!! 今回はどちらかと言うと機能面というより、 Node.js v5.0 の位置づけを中心に解説したいと思います。 機能面も一応載せますが、学園祭前で時間があまり作れないので、さくっと終わらせます。 機能面での変更 ES2015の文法追加 Spread operator が追加 Spread operator が追加されました。 これまで配列をJavaScriptの関数に引数に展開して渡す場合、以下のように記述する必要がありました。 function f(x, y, z) { console.log(x); console.log(y); console.log(z); } var args = [0, 1, 2]; f.apply(null, args); この書き方はあまり直感的じゃなく、また new 演算子と併用できないという問題があった

    Node.js v5.0 がリリースされました。 - from scratch
  • gulp なしの Web フロントエンド開発 - アカベコマイリ

    Web フロントエンド開発において gulp は非常に便利だ。しかしあまりにも gulp に依存しすぎており、これなしで開発できるだろうか?という不安もある。というわけで gulp を利用せず package.json と npm だけで同等の機能を実現する方法を検討してみた。 2015/11/4 追記 babelify v7.2 を試すで babelyfy 7.2 ( とその中の Babel 6.x ) について調べ、npm-scripts の変更が必要なことを確認したので追記。また Windows 環境の動作検証をおこなったところ、最新の watchify なら -o オプションが通ることを確認できた。よって記事の最後の課題が解決したことになる。 2015/9/23 追記 cpx と rimraf を試すの内容をファイル処理に反映して簡略化。 2015/9/15 修正 Stylus

  • Node.jsのイベントループを理解する | POSTD

    (訳注:2015/8/4、いただいた翻訳フィードバックを元に記事を修正いたしました。) Nodeの”イベントループ”は高スループットのシナリオを操作する中枢で、ユニコーンや虹で満ちあふれているような魅力的な場所です。そしてこのイベントループのため、バックグラウンドで任意の処理の実行が可能でありながら、Nodeは質的に”シングルスレッド”になるのです。この記事では、イベントループがどのような処理を行うのかを説明していきます。そうすれば皆さんも、この魔法を使いこなせるようになるでしょう。 イベント駆動型プログラミング イベントループを理解するためにまず必要なのは、イベント駆動型プログラミングのパラダイムを理解することです。イベント駆動型プログラミングは、1960年代から広く知られてきました。現在は主にUIのアプリケーションに使用されています。JavaScriptでは主にDOMとのやりとりで利

    Node.jsのイベントループを理解する | POSTD
  • 週刊「しょうもないWebアプリをつくる」創刊号 – アクセスカウンター | CreativeStyle

    突然ですが、新しい企画を始めます。 創刊のご挨拶 週刊「しょうもないWebアプリをつくる」は、僕@kadoppe が(ほぼ)毎週「しょうもないWebアプリ」をつくって公開するという、比較的どうでもいい企画になります。 Webアプリケーション開発の世界には、新しいワクワクするような技術やツールが、毎日たくさん登場しています。そんな技術に少しでもキャッチアップするために、何かしらのWebアプリを開発するきっかけがほしいと思ったので、なんとなく始めてみました。 「しょうもないWebアプリ」の定義はあいまいですが、 あまり役に立たない 結構すぐにつくれる みたいなものをイメージしています。また、 ソースコードを公開する だれでもDeployできるよう「Deploy to Heroku」ボタンを用意する(後述) ことはちゃんとやっていこうと思います。 もしかしたら、たまに役に立つWebアプリをつくる

    週刊「しょうもないWebアプリをつくる」創刊号 – アクセスカウンター | CreativeStyle
  • JavaScriptのモジュールシステムの歴史と現状 - Qiita

    社内向け資料。自分が書いたコードを説明するために資料作る羽目になった。 昔のことはうろ覚えで雰囲気で書いてる部分もあるので、そこらへん勘弁。 古の時代(~2010) 前提としてJavaScriptは名前空間がwindowの一つしかない。 昔Prototype.jsがあった。もうみんな忘れたけどあの時期はプリミティブなオブジェクトのprototypeを生やしまくって、それが衝突しまくってprototype良くない的な雰囲気が生まれたり生まれなかったりした。 その反省があってか(歴史的に若干微妙な気がするが) jQueryは名前空間を一つに集約した。いわゆる jQueryPlugin は、jQueryのプロトタイプにヘルパを生やしまくっていた。グローバルを汚すのは駄目だけどjQueryの名前空間を汚すのはいいよね、ぐらいの考え。 jQuery非依存なライブラリは、「GoodParts」として、

    JavaScriptのモジュールシステムの歴史と現状 - Qiita
  • Adobe製のJavaScriptデバッガTheseusがすごい - Qiita

    この前、研究室の先生に教えてもらったAdobe製のJavaScriptデバッガTheseusがかなり便利なのでご紹介します。 Theseusとは Theseusは、AdobeとMITの共同研究から生まれたJavaScriptのデバッガです(→学会論文)。ChromeとNode.jsの上で動きます。具体的に何をしてくれるのかをざっくり言うと、関数のコールを追跡して、BracketsというAdobe製のエディタに下画像のような感じで表示してくれます。 Theseusのすごいところは、コールバックの実行まで追跡してくれることです。もちろん、エラーが起きた箇所もすぐに見ることができます。また、デバッグをするとき、気になる箇所にconsole.logを挟むことがあると思いますが、Theseusを使えばその必要もありません。関数の横に表示されているコール回数をクリックすれば、その関数の実行ログを表示し

    Adobe製のJavaScriptデバッガTheseusがすごい - Qiita
  • npm とフロントエンドのパッケージ管理の未来

    JavaScript 系パッケージマネージャの重複問題 npm は言わずもがな Node.js のパッケージマネージャだが、フロントエンド開発においては Bower も利用するのが一般的になっている。この現状の問題点は、package.jon と bower.json という似たような管理ファイルを二重で管理しなければならないということだ。 現状の使い分けをおさらいをしておくと、次のような感じになる。 タスクランナー(Grunt/gulp)・モジュールシステム(browserify/webpack)・テストスイート(karma/testem)などの開発環境系の管理が npm の主なお仕事。インストールされたパッケージは node_modules 内に展開されて、CommonJS スタイルのモジュール管理から利用する。 題につながる話としては、ブラウザで動くライブラリの一部は npm にも

    npm とフロントエンドのパッケージ管理の未来
  • MEAN(MongoDB, Express, AngularJS, Node.js)を解説する

    MEAN(MongoDB, Express, AngularJS, Node.js)を解説する 前に触った感想です。 MongoDB 良くも悪くもNoSQL。トランザクション無を補うためスキーマが基汚くなる。 汚いスキーマにアプリケーションの変更が入って安全にデータが壊れる。 結局、不整合が起きてバッチに頼る。バージョン変えるとデータが壊れる。スケール環境は不安定になって止まるのは基。基いつのまにか変更されて変な動きして死んでる前提で、動く/戻せる環境構築できない奴は死ぬ Expressシンプルに書けるんじゃなくて、薄い機能しか無い。ミドルウェアをたくさん詰むことになり、ミドルウェアのチェーンは黒魔術詠唱と変わらん。 唱えた人もどうなるか分からないのがざら。エラーが勝手に握りつぶされるのは基。 落ちるのがミドルウェア内のエラーとか基。 いつの間にか落ちるのも基。基いつのまに

    MEAN(MongoDB, Express, AngularJS, Node.js)を解説する
    Nagatani
    Nagatani 2014/10/07
    “基本いつのまにか変更されて変な動きして(エンジニアが)死んでる前提で、動く/戻せる環境構築できない奴は死ぬ”
  • MEAN(MongoDB, Express, AngularJS, Node.js)スタックが優れている理由 - Mozilla Open Web Day in Tokyoを終えて - albatrosary's blog

    MEANとは、LAMP(Linux, Apache, MySQL, PHP)に変わる技術としてじわじわと注目されはじめているアーキテクチャです。このアーキテクチャMEAN(MongoDB, Express, AngularJS, Node.js)は、シンプルでかつ強力なアーキテクチャで、現在のJavaを利用したアプリケーション開発とは一線を画すところです。HTML5開発にとってJavaの役割が殆どなくなるというのも注目すべき点だと考えます。MEANで一般的に言われる注目すべき事項は次のところです: JavaScriptフルスタックである データモデルとしてクライアントからデータベースに至までJSON そして、この記事を書こうと思ったきっかけですが、2014/10/5(日) Mozilla Open Web Day in Tokyo | Mozilla Japan でのMEAN解説展示で、様

    MEAN(MongoDB, Express, AngularJS, Node.js)スタックが優れている理由 - Mozilla Open Web Day in Tokyoを終えて - albatrosary's blog
    Nagatani
    Nagatani 2014/10/07
    適材適所がいいと思う
  • nodeconf.eu 1日目 (Future Node.js, microservices, hapi) - from scratch

    さて、 nodeconf.eu に来ています。 当たり前なんだけど、nodeconf.eu ではnode.jsを使っているユーザーが多くて、外人ばっかり。 会う人会う人に「お前の国ではNode.jsは流行ってるのか?」って聞いてるんだけど、とりあえずの理解では、「サンフランシスコ、シアトルとかアメリカでは流行ってる。Dublin、ロンドンとかのアイルランド、イギリスでもまぁまぁ流行ってる。スウェーデンでは全く流行っていない。」っていう感じ。 日ではどうなんだ?って聞かれたから「MatzのおかげでRubyがめっちゃ流行ってるよ、Node.jsも一時期流行ったけどRubyほどじゃない、最近だとGoScalaが流行ってるよ」って応えてる。 ちなみにサンフランシスコだと、Node.jsめっちゃ流行ってて、Goがちょっと前のNode.jsみたくぼちぼち流行ってる、エッジな人たちがRust使い始め

    nodeconf.eu 1日目 (Future Node.js, microservices, hapi) - from scratch
  • Hexo

    Blazing Fast Incredible generating speed powered by Node.js. Hundreds of files take only seconds to build. Markdown Support All features of GitHub Flavored Markdown are supported, including most Octopress plugins. One-Command Deployment You only need one command to deploy your site to GitHub Pages, Heroku or other platforms. Plugins Features powerful APIs for limitless extensibility. Various plugi

    Hexo