Visual Studio では、Node.js プロジェクトを簡単に作成し、IntelliSense や、Node.js をサポートする他の組み込み機能を使用することができます。 このチュートリアルでは、Visual Studio テンプレートから Node.js Web アプリ プロジェクトを作成します。 その後、React を使って簡単なアプリを作成します。 このチュートリアルでは、次の作業を行う方法について説明します。 始める前に、簡単な FAQ で主要な概念をいくつか紹介します。 Node.js とは何ですか? Node.js は JavaScript コードを実行するサーバー側の JavaScript ランタイム環境です。 npm とは何か Node.js の既定のパッケージ マネージャーは npm です。 パッケージ マネージャーを使用すると、Node.js ソース コード
こちらの記事は6 things I’ve learned in my first 6 months using serverlessの和訳になります。 サーバーレスの世界は適切なツールさえ見つければミドルレイヤーを省けるのでとても良いものです。 10月に行われたServerlessconfの後、自分の会社を全てサーバーレスにすることに決めました。最初の2ヶ月は Python Flask appにLambdaを導入するのに必死でしたが、そのおかげでより良い方法を思いつきました。 そして6ヶ月後、私たちにとって4番目に大きいプロジェクトをサーバーレスでデプロイすることになったのです。以下の内容がデプロイするまでに私たちが学んだ教訓、意見です。 レッスン1 Pythonの使用は避けましょう Flaskは昔ながらのリクエスト、レスポンスのスタイルで、サーバーによって管理されるセッションがあるWeb
1. はじめに 最近わけあってNodeのセキュリティ調査をしているのですが、今年の5月に開催された North Sec 2018 でセキュリティ研究者の Olivier Arteau 氏による 「Prototype pollution attacks in NodeJS applications」という面白い発表を見つけました。 この発表の論文や発表資料、デモ動画などもgithubで公開されていますし、ちょうどタイミングよくセッション動画も最近公開されました。 github.com Olivier Arteau -- Prototype pollution attacks in NodeJS applications この発表で解説されているのは、悪意のある攻撃者が、JavaScript言語固有のプロトタイプチェーンの挙動を利用して、Webサーバを攻撃する方法です。 発表者は、npmからダ
JavaScriptのデバッグに苦労しているなら、Nodeのデバッガーを試してみてはどうでしょうか。Visual Studio Codeならさらに手軽です。 袋小路です! 何時間も費やしていろいろ試してみたけれどもうまくいきません。コードをじっと吟味してもエラーになりそうなところはありません。2、3回ロジックを見直して、何度も実行しています。単体テストも助けにはならず、同じく失敗してしまいます。もはやどうしていいか分からず、虚空を見つめたくなります。ひとり闇の中にいるように感じて、だんだん腹が立ってきます。 こんなときの自然な反応は、コードの品質を落とし、邪魔なものを全部捨て去ることです。コードのあちこちにprintをちりばめて、なにかうまくいくことを祈るわけです。これでは暗闇で的を狙うようなもので、望み薄なことが分かるでしょう。 よくある話だと感じたのではないでしょうか。今までに数行以上
socket.io 1.0 では connect っぽく middleware として書けるようになりました。 socket.io 1.0 のハンドシェイク! socket.request で Request オブジェクトが受け取れるのでそれを利用します。 (以下、Express 4.x の場合) Session = require('express-session').session.Session COOKIE_SECRET = 'himitsu-dayo' COOKIE_KEY = 'sid' # # 途中省略 # # Socket.io io = require('socket.io')(server) # セッション共有 io.use (socket, next)-> # クッキーからセッション ID を取得する cookie = require('cookie').parse
ステップ実行 --debugと--debug-brkは Node8 の時点ですでに非推奨なので、使わないでください。 デバッグ方法 コンソール Chrome devtools または、VSCode のような IDE に任せる 今回は、エディタ依存の話は特にしないです。 共通的な手順 基本的には、debugger を止めたい場所に置いていくことになります。 例として、以下のコードで説明していきます。 "use strict"; const { readFile } = require("fs"); const { promisify } = require("util"); const readFileAsync = promisify(readFile); (async () => { const data = await readFileAsync("hello.txt", "utf8"
会社の自分のPC(Windows)で何かを定期的に実行したいときは だいたいPythonなりnode.jsなりでスクリプトを書いて タスクスケジューラに登録しておく。 のだけど、 タスクスケジューラは未ログイン時に実行しようとすると ログインアカウントを登録しておく必要があったり、 パスワードを変更した時に更新を忘れて実行に失敗しまくってたり、 そのログイン失敗のせいで社内ネットワークから閉め出されちゃったり、 色々と困ることがある。 Linuxのcrondと同じような仕組みができないか、と探してみたら 「pm2」と「node-cron」の組み合わせで実現できそうだったので、試してみた。 参考情報 こちらの参考ページを読んだらこのあとの内容は読まなくても良いくらいなのだけど、 node.jsで定期的にスクリプトを実行するにはpm2が便利 | 「node-cron」はその名の通りnode.j
node.jsでデータ収集のためのWebスクレイピングを行う。 Webスクレイピングの流れというのはだいたい決まっていて、 WebページにアクセスしてHTMLを取得する 取得したHTMLの中から必要なデータを抽出する 抽出したデータを保存する の3段階となる。 通常、Webスクレイピングが必要となるのは データ取得用のAPIが提供されていない 必要なデータが1ページに収まらず多くのページにまたがっており、手作業でコピペしていくのが難しい 場合で、そのうちWebスクレイピングが可能なのは 対象の各ページが同じフォーマットになっており、パターン化された処理で必要なデータを取得できる 場合となる。 例えば「ページングされた検索結果画面」とか 「同じフォーマットでHTMLが書かれたたくさんの商品詳細画面」 なんかがスクレイピングでデータ取得しやすい。 前提として、 Webスクレイピングは手作業 で
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました 開発者向けのドキュメントはDX(Developer Experience。開発者体験)を語る上で欠かせない存在です。ドキュメントが間違っているのはもっての外ですが、さらに可読性が高かったり、機能面においても体験を向上できる要素があります。 そんな中、メンテナンスのしやすさもまた大事な要素になります。今回はMarkdownファイルをベースにしたドキュメントシステム、Docbaseを紹介します。 Docbaseの使い方 利用例です。トップページのデザインも格好良いです。 ドキュメント詳細です。右側に目次、中央にコンテンツが表示されます。 コードは文字が大きく見やすくなっています。 別なドキュメントの例です。ヘッダーやフォントなどをカスタマイズできます。右側のカラムは表示されていません。
Webは疑問を解消するのに使えますが、そのためには疑問(とその回答)をまずどこかに載せておく必要があります。最近ではQ&Aが人気ですが、それでもよくある質問についてはFAQのが役立つ場合があります。 そこで使ってみたいのがopenKBです。自社のFAQシステムを構築するのに使えるでしょう。 openKBの使い方 トップページです。左側にカテゴリ、右側によく見られている記事が並びます。 記事詳細です。Markdown記法で書かれています。下には記事のメタ情報があります。 検索もあります。 openKBを使えばFAQシステムが簡単に構築できます。Markdownベースなので普段から使い慣れている記法で書けるのが便利です。まずデータを蓄積していけばWeb検索で引っかかるようになっていくことでしょう。 openKBはnode/JavaScript製のオープンソース・ソフトウェア(MIT Licen
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く