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
56
Featured
See All Featured
A designer walks into a library…
pauljervisheath
211
25k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
550
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Code Reviewing Like a Champion
maltzj
528
40k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
340
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
510
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
860
Agile that works and the tools we love
rasmusluckow
331
22k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
290
How STYLIGHT went responsive
nonsquared
100
6.3k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.3k
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ライフを送りましょう。
“ ご清聴ありがとうございました。