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
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
41
OSSを読んでみた?
h_reader
0
59
vue_js_composition_api
h_reader
0
72
秒速でリリースするWebアプリ.pdf
h_reader
0
53
はじめよう async/await
h_reader
0
57
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
430
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
580
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
Google's AI Overviews - The New Search
badams
0
1.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.5k
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Become a Pro
speakerdeck
PRO
31
6.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
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ライフを送りましょう。
“ ご清聴ありがとうございました。