Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Node.jsではじめるオレオレツールの世界
Search
Hirofumi Horiuchi
July 23, 2018
510
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Node.jsではじめるオレオレツールの世界
Hirofumi Horiuchi
July 23, 2018
More Decks by Hirofumi Horiuchi
See All by Hirofumi Horiuchi
Stimulusのはなし
h_reader
0
42
同じってなんだ?
h_reader
0
40
OSSを読んでみた?
h_reader
0
59
vue_js_composition_api
h_reader
0
71
秒速でリリースするWebアプリ.pdf
h_reader
0
52
はじめよう async/await
h_reader
0
55
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
350
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
550
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
How to build a perfect <img>
jonoalderson
1
5.8k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Google's AI Overviews - The New Search
badams
0
1.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
220
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Building an army of robots
kneath
306
46k
Transcript
Node.jsではじめる オレオレツールの世界
名前:堀内 大史 Hirofumi Horiuchi 仕事:C# でPOSアプリ開発 趣味:キャンプ・サッカー観戦
“ オレオレツールとは?(本LTでの定義)
“ オレが作ってオレのために使う ローカル環境で実行する(JSの)ツール
はじめに 1
“ WindowsやMacでもJSを実行する コマンドが用意されている Windows:wscript, cscript Mac:jsc
“ コードを書いて実行してみると・・・ index.js console.log(“Hello world”);
“ なんと、エラーになって動かない。 $ cscript index.js C:\work\sample\index.js(1, 1) Microsoft JScript 実行時エ
ラー: 'console' は宣言されていません。
“ `console.log()` はサポートされておらず コンソールへの出力は `print()`、`WScript.Echo()` など、ホスト環境により変わる。
“ めんどくさい・・・ (知らなかっただけ)
“ そこで登場するのが・・・
“ Node.js
Node.jsでHello world console.log();
“ index.js console.log(“Hello world”);
“ 出力される! $ node ./index.js Hello world
“ ここからはNode.jsで出来ることを紹介 (オレオレツールとして)
Node.jsでファイル操作
ファイル操作モジュール 「fs」 Node.js公式のモジュールで、 ファイル操作を行うためのもの。 標準のまま `require('fs')` するだけで 利用できる。
利用例 const fs = require('fs'); // カレントディレクトリのファイル一覧 const pathList =
fs.readdirSync('./'); // ファイルの書き込み const path = 'index.js'; const data = 'console.log("Hello world");'; fs.writeFileSync(path, data); // ファイル読み込み const fileData = fs.readFileSync(path, "utf-8"); console.log("fileData", fileData);
NPMを使う
“ Node.jsなので、npmで 既存のパッケージを簡単に使える
“ ` npm init ` で package.json を作成
“ 色々聞かれますが、 全てEnterでいいです。
“ なぜなら・・・ オレオレツールだからです。
“ package.json ができたら npmでインストールする準備が完了。 ここからライブラリを紹介
Excelを操作する 「xlsx」
Excel操作ライブラリ 「xlsx」 Excelファイルへのread/writeが出来る。 シート内の情報をjsonで取得出来たり して便利。
こんなExcelを読み込んでみます
利用例 const xlsx = require("xlsx"); // ファイル名、シート名を指定してシート情報を取得 const book =
xlsx.readFile("sample.xlsx"); const sheet = book.Sheets["Sheet1"]; // シート情報をJsonで取得 const jsonData = xlsx.utils.sheet_to_json(sheet); console.log(jsonData);
実行結果 $ node .\xlsx-sample.js [ { ItemNo: '1', ItemName: 'ぶどう',
price: '600' }, { ItemNo: '2', ItemName: '桃', price: '400' }, { ItemNo: '3', ItemName: 'スモモ', price: '300' } ]
HTTPクライアントの「axios」
HTTPクライアント 「axios」 Promise ベースのHTTPクライアント。 ReactとかVue.jsとかではおなじみ (だと思っている)
利用例 const axios = require('axios'); // connpassからWeJSの勉強会情報をGetで取得 const url =
'https://connpass.com/api/v1/event/'; const param = { keyword : 'We Are JavaScripters! @22nd' } axios.get(url, { params: param }) .then((response) => console.log(response.data));
実行結果 $ node .\axios-sample.js { results_returned: 1, events: [ {
event_url: 'https://wajs.connpass.com/event/91558/', event_type: 'participation', started_at: '2018-07-23T19:30:00+09:00', hash_tag: 'WeJS', title: 'We Are JavaScripters! @22nd【初心者歓迎LT大会】', event_id: 91558, waiting: 31, limit: 86, accepted: 86, ], results_start: 1, results_available: 1 } ※一部結果を省略
“ ここまで紹介したものを組み合わせると、 ①特定のディレクトリから Excelファイルを探し ②Excelから必要なデータを取得 ③Webサーバにデータを送信 みたいなことができます。
作ったツールを他人に使ってもらう
“ いざツールが完成したら 同じチームの仲間にも作ったツールを 使ってほしいと思うかもしれません。
“ ただし、 ソースは渡したくない (ソースを汚く書いちゃったとか) といったこともあるでしょう。
“ そこで
“ Webpack
「Webpack」 JSファイルをまとめる高機能な モジュールバンドラ。 1つのJSファイルに色々まとめてくれる。 オレオレツールなので雑に導入
「Webpack」を雑に導入① `npm i -D webpack webpack-cli` Webpack.config.js を作成。中身↓ module.exports =
{ mode: 'production', target: 'node', };
「Webpack」を雑に導入② `npx webpack ./index.js` ←mainに該当するjsファイル ./dist/main.js が作成されます。 これを提供すればOKです。
まとめ
“ ・Node.jsと各種ライブラリのおかげで 楽にいろいろなことが出来そう ・オレオレツールなので、エラー処理など 細かいことには目をつぶり、 自由に楽しく作ることができる。 ・誰かにツールを渡したくなったら雑に WebPackを使えば簡単。
“ オレオレツールで 楽しいJavascriptライフを送りましょう。
“ ご清聴ありがとうございました。