Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Node.jsではじめるオレオレツールの世界
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Hirofumi Horiuchi
July 23, 2018
520
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
43
同じってなんだ?
h_reader
0
40
OSSを読んでみた?
h_reader
0
59
vue_js_composition_api
h_reader
0
71
秒速でリリースするWebアプリ.pdf
h_reader
0
53
はじめよう async/await
h_reader
0
55
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
7k
Designing for Timeless Needs
cassininazir
1
470
Code Review Best Practice
trishagee
74
20k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
780
Design in an AI World
tapps
1
310
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Product Roadmaps are Hard
iamctodd
55
13k
Visualization
eitanlees
152
17k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
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ライフを送りましょう。
“ ご清聴ありがとうございました。