Node éçºç°å¢ã®è¨å®
Express ã®ç®çãçè§£ã§ããã®ã§ãWindowsãLinux (Ubuntu)ãããã³ macOS ä¸ã§ Node/Express éçºç°å¢ãã»ããã¢ãããã¦ãã¹ãããæ¹æ³ã説æãã¾ããã©ã®ãããªä¸è¬ç㪠OS ã使ç¨ãã¦ãã¦ãããã®è¨äºã§ã¯ Express ã¢ããªã±ã¼ã·ã§ã³ã®éçºãéå§ããããã«å¿ è¦ãªãã®ãæä¾ãã¾ãã
| åææ¡ä»¶: | 端æ«/ã³ãã³ãã©ã¤ã³ãéãæ¹æ³ãç¥ã£ã¦ãããã¨ãéçºç¨ã³ã³ãã¥ã¼ã¿ã¼ã® OS ã«ã½ããã¦ã§ã¢ããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«ããæ¹æ³ãç¥ã£ã¦ãããã¨ã |
|---|---|
| ç®ç: | ã³ã³ãã¥ã¼ã¿ã¼ä¸ã« Express ç¨ã®éçºç°å¢ãã»ããã¢ãããã¾ãã |
Express éçºç°å¢æ¦è¦
Node 㨠Express ã®ãããã§ãã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã®éçºãå§ããããã«ã³ã³ãã¥ã¼ã¿ã¼ãã»ããã¢ãããããã¨ãé常ã«ç°¡åã«ãªãã¾ãããã®ç¯ã§ã¯å¿ è¦ãªãã¼ã«ã®æ¦è¦ãUbuntuãmacOSãããã³ Windows ã« Node (ããã³ Express) ãã¤ã³ã¹ãã¼ã«ããããã®æãç°¡åãªæ¹æ³ã«ã¤ãã¦èª¬æããã¤ã³ã¹ãã¼ã«ããã¹ãããæ¹æ³ã示ãã¾ãã
Express éçºç°å¢ã¨ã¯ä½ã?
Express éçºç°å¢ã«ã¯ Nodejsãnpm ããã±ã¼ã¸ããã¼ã¸ã£ã¼ãããã³ (ãªãã·ã§ã³ã§) ãã¼ã«ã«ã³ã³ãã¥ã¼ã¿ã¼ã« Express Application Generator ãã¤ã³ã¹ãã¼ã«ããã¦ãã¾ãã
Node 㨠npm ããã±ã¼ã¸ããã¼ã¸ã£ã¼ã¯ãæºåããããã¤ããªã¼ããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã©ã¼ããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã®ããã±ã¼ã¸ããã¼ã¸ã£ã¼ãã¾ãã¯ã½ã¼ã¹ããä¸ç·ã«ã¤ã³ã¹ãã¼ã«ããã¾ã (次ã®ç¯ãåç §)ã Express ã¯ãnpm ã«ãã£ã¦ãåã ã® Express ã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã®ä¾åé¢ä¿ã¨ã㦠(ãã³ãã¬ã¼ãã¨ã³ã¸ã³ããã¼ã¿ãã¼ã¹ãã©ã¤ãã¼ãèªè¨¼ããã«ã¦ã§ã¢ãéçãã¡ã¤ã«ãæä¾ããããã®ããã«ã¦ã§ã¢ãªã©ã®ä»ã®ã©ã¤ãã©ãªã¼ã¨å ±ã«) ã¤ã³ã¹ãã¼ã«ããã¾ãã
npm 㯠MVC ãã¿ã¼ã³ã«å¾ã£ãã¹ã±ã«ãã³ã® Express ã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã使ããããã®ä¾¿å©ãªãã¼ã«ã§ãã Express Application Generator ã (ã°ãã¼ãã«ã«) ã¤ã³ã¹ãã¼ã«ããããã«ã使ç¨ã§ãã¾ããExpress ã使ç¨ããã¢ããªã使ããããåãã¢ã¼ããã¯ãã£ä¸ã®ã¬ã¤ã¢ã¦ããä¾åé¢ä¿ãæã¤ Express ã¢ããªãæ§ç¯ãããããããã«ãã®ãã¼ã«ã使ç¨ããå¿ è¦ã¯ãªããããã¢ããªã±ã¼ã·ã§ã³ã¸ã§ãã¬ã¼ã¿ã¼ã¯ãªãã·ã§ã³ã§ãããã ãã使ãå§ããã®ãã¯ããã«ç°¡åã«ãªããã¢ã¸ã¥ã¼ã«å¼ã®ã¢ããªã±ã¼ã·ã§ã³æ§é ãä¿é²ããããããããã使ç¨ãã¾ãã
ã¡ã¢: ä»ã®ã¦ã§ããã¬ã¼ã ã¯ã¼ã¯ã¨ã¯ç°ãªããéçºç°å¢ã«ã¯ç¬ç«ããéçºç¨ã®ã¦ã§ããµã¼ãã¼ã¯å«ã¾ãã¦ãã¾ãããNode/Express ã§ã¯ãã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ãç¬èªã®ã¦ã§ããµã¼ãã¼ã使ãã¦å®è¡ãã¾ãã
ããã¹ãã¨ãã£ã¿ã¼ãã³ã¼ãç·¨éç¨ã® IDEãã³ã¼ãã®ç°ãªããã¼ã¸ã§ã³ãå®å ¨ã«ç®¡çããããã® Git ãªã©ã®ã½ã¼ã¹ç®¡çããã¸ã¡ã³ããã¼ã«ãªã©ãä¸è¬çãªéçºç°å¢ã®ä¸é¨ã§ããä»ã®å¨è¾ºãã¼ã«ãããã¾ãããããã®ç¨®é¡ã®ãã¼ã« (ç¹ã«ããã¹ãã¨ãã£ã¿ã¼) ãæ¢ã«ã¤ã³ã¹ãã¼ã«ããã¦ããã¨ä»®å®ãã¦ãã¾ãã
ã©ã®ãªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ããµãã¼ãããã¦ãã¾ããï¼
Node 㯠WindowsãmacOSãLinux ã®å¤ãã®ããã¬ã¼ãã¼ããDocker ãªã©ã§å®è¡ã§ãã¾ã (nodejs ã®ãã¦ã³ãã¼ããã¼ã¸ã«å®å ¨ãªãªã¹ããããã¾ã)ãã»ã¨ãã©ã®ãã¼ã½ãã«ã³ã³ãã¥ã¼ã¿ã¼ã¯éçºä¸ã« Node ãå®è¡ããã®ã«å¿ è¦ãªæ§è½ãæã£ã¦ããã¯ãã§ããExpress 㯠Node ç°å¢ã§å®è¡ããããããNode ãå®è¡ããä»»æã®ãã©ãããã©ã¼ã ã§å®è¡ã§ãã¾ãã
ãã®è¨äºã§ã¯ WindowsãmacOSãããã³ Ubuntu Linux ã®ã»ããã¢ããæé ã説æãã¾ãã
ã©ã®ãã¼ã¸ã§ã³ã® Node/Express ã使ç¨ãã¹ãã
ããããã® Node ã®ãªãªã¼ã¹ãããã¾ã - æ°ãããªãªã¼ã¹ã«ã¯ãã°ä¿®æ£ãECMAScript (JavaScript) æ¨æºã®ããææ°ã®ãã¼ã¸ã§ã³ã®ãµãã¼ãããã㦠Node API ã®æ¹è¯ãå«ã¾ãã¦ãã¾ãã
ä¸è¬çã«ã¯ææ°ã® LTS (é·æãµãã¼ã) ãªãªã¼ã¹ã使ç¨ããã¹ãã§ããæ¯è¼çææ°ã®æ©è½ãæã¡ãªãã (ããã¦ç¾å¨ãç©æ¥µçã«ã¡ã³ããã³ã¹ããã¦ãã¾ã)ã"ææ°ã®" ãªãªã¼ã¹ããå®å®ãã¦ããããã§ããLTS ãã¼ã¸ã§ã³ã«åå¨ããªãæ©è½ãå¿ è¦ãªå ´åã¯ãææ°çãªãªã¼ã¹ã使ç¨ãã¦ãã ããã
Express ã®å ´åã常㫠Node ã®ææ°ã® LTS ã使ç¨ãã¹ãã§ãã
ãã¼ã¿ãã¼ã¹ããã®ä»ã®ä¾åé¢ä¿ã«ã¤ãã¦
ãã¼ã¿ãã¼ã¹ãã©ã¤ãã¼ããã³ãã¬ã¼ãã¨ã³ã¸ã³ãèªè¨¼ã¨ã³ã¸ã³ãªã©ã®ãã®ä»ã®ä¾åé¢ä¿ã¯ã¢ããªã±ã¼ã·ã§ã³ã®ä¸é¨ã§ãããnpm ããã±ã¼ã¸ããã¼ã¸ã£ã¼ã使ç¨ãã¦ã¢ããªã±ã¼ã·ã§ã³ç°å¢ã«ã¤ã³ãã¼ãããã¾ãããããã«ã¤ãã¦ã¯ãå¾ã®ã¢ããªåºæã®è¨äºã§èª¬æãã¾ãã
Node ã®ã¤ã³ã¹ãã¼ã«
Express ã使ç¨ããã«ã¯ã Nodejs 㨠Node Package Manager (npm) ããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã«ã¤ã³ã¹ãã¼ã«ããå¿ è¦ãããã¾ãã ãããç°¡åã«ããããã«ãæåã« node ãã¼ã¸ã§ã³ããã¼ã¸ã£ãã¤ã³ã¹ãã¼ã«ããããã使ç¨ãã¦ææ°ã® LTS(Long Term Supported) ãã¼ã¸ã§ã³ã® node 㨠npm ãã¤ã³ã¹ãã¼ã«ãã¾ãã
ã¡ã¢: https://nodejs.org/en/ ã§æä¾ããã¦ããã¤ã³ã¹ãã¼ã©ã¼ã使ã£ã¦ nodejs 㨠npm ãã¤ã³ã¹ãã¼ã«ãããã¨ãã§ãã¾ãï¼ãã»ã¨ãã©ã®ã¦ã¼ã¶ã¼ã«æ¨å¥¨ãããã¦ãã LTS ãã«ãããã¦ã³ãã¼ããããã¿ã³ã鏿ãã¾ãï¼ãã¾ããã使ãã® OS ã®ããã±ã¼ã¸ããã¼ã¸ã£ã¼ã使ç¨ãã¦ã¤ã³ã¹ãã¼ã«ãã ãã¨ãã§ãã¾ãã node ãã¼ã¸ã§ã³ããã¼ã¸ã£ã使ç¨ãããã¨ãå¼·ãæ¨å¥¨ãã¾ãããã¼ã¸ã§ã³ããã¼ã¸ã£ã使ç¨ãããã¨ã§ã node 㨠npm ã®å ·ä½çãªãã¼ã¸ã§ã³ã®ã¤ã³ã¹ãã¼ã«ãã¢ããã°ã¬ã¼ããåãæ¿ããç°¡åã«ãªãã¾ãã
Windows
Windows ç¨ã® node ãã¼ã¸ã§ã³ç®¡çãã¼ã«ã¯æ°å¤ãããã¾ãã ããã§ã¯ãnode éçºè ã®éã§é«ãè©ä¾¡ããã¦ãã nvm-windows ã使ç¨ãã¾ãã
nvm-windows/releases ãã¼ã¸ããä»»æã®ã¤ã³ã¹ãã¼ã©ã¼ã使ç¨ãã¦ææ°ãã¼ã¸ã§ã³ãã¤ã³ã¹ãã¼ã«ãã¾ãã
nvm-windows ãã¤ã³ã¹ãã¼ã«ãããããã³ãã³ãããã³ããï¼ã¾ã㯠PowerShellï¼ãéãã以ä¸ã®ã³ãã³ããå
¥åãã¦ææ°ã® LTS ãã¼ã¸ã§ã³ã® nodejs 㨠npm ããã¦ã³ãã¼ããã¾ãã
nvm install lts
å·çæç¹ã§ã® nodejs ã® LTS ãã¼ã¸ã§ã³ã¯ 22.17.0 ã§ãã ä¸è¨ã³ãã³ãã§ä½¿ç¨ããç¾å¨ã®ãã¼ã¸ã§ã³ã¨ãã¦è¨å®ãããã¨ãã§ãã¾ãã
nvm use 22.17.0
ã¡ã¢: ãã¢ã¯ã»ã¹æå¦ãã®è¦åã表示ãããå ´åã¯ã管çè æ¨©éã§ãã®ã³ãã³ããããã³ããã§å®è¡ããå¿ è¦ãããã¾ãã
ã³ãã³ã nvm --help ã使ç¨ãã¦ãå©ç¨ã§ãããã¹ã¦ã®ãã¼ãã®ãã¼ã¸ã§ã³ããã¦ã³ãã¼ããã NVM ã®ãã¼ã¸ã§ã³ã®ä¸è¦§ãªã©ãä»ã«ãã³ãã³ãã©ã¤ã³ãªãã·ã§ã³ãæ¢ããã¨ãã§ãã¾ãã
Ubuntu ããã³ macOS
Ubuntu ã macOS ç¨ã®ãã¼ããã¼ã¸ã§ã³ç®¡çãã¼ã«ã¯ããã¤ãããã¾ãã
nvmã¯ãã人æ°ã®ãããã®ã® 1 ã¤ã§ã nvm-windows ã®å
ã«ãªã£ããã¼ã¸ã§ã³ã§ãã
nvm ã®ææ°ãã¼ã¸ã§ã³ãã¤ã³ã¹ãã¼ã«ãã端æ«ã®æé ã«ã¤ãã¦ã¯ nvm > Install & Update Script ãåç
§ãã¦ãã ããã
nvm ãã¤ã³ã¹ãã¼ã«ããããã端æ«ãéãã¦ä»¥ä¸ã®ã³ãã³ããå
¥åããææ°ã® LTS ãã¼ã¸ã§ã³ã® nodejs 㨠npm ããã¦ã³ãã¼ããã¦ãã ããã
nvm install --lts
å·çæç¹ã§ã® nodejs ã® LTS ãã¼ã¸ã§ã³ã¯ 22.17.0 ã§ãã
ã³ãã³ã nvm list ã¯ãã¦ã³ãã¼ããããã¼ã¸ã§ã³ã¨ç¾å¨ã®ãã¼ã¸ã§ã³ãè¨å®ãã¾ãã
ä¸è¨ã³ãã³ãã§ç¹å®ã®ãã¼ã¸ã§ã³ãç¾å¨ã®ãã¼ã¸ã§ã³ã¨ãã¦è¨å®ãããã¨ãã§ãã¾ãï¼nvm-windows ã®å ´åã¨åãã§ãï¼ã
nvm use 22.17.0
ä»ã«ãã³ãã³ãã©ã¤ã³ãªãã·ã§ã³ãæ¢ãã«ã¯ nvm --help ã³ãã³ãã使ç¨ãã¾ãã
ããã㯠nvm-windows ãæä¾ãããã®ã¨ä¼¼ã¦ããããåãã§ãããã¨ãå¤ãã§ãã
Nodejs ããã³ npm ã¤ã³ã¹ãã¼ã«ã®ãã¹ã
ç¹å®ã®ãã¼ããã¼ã¸ã§ã³ã使ç¨ããããã« nvm ãè¨å®ããããã¤ã³ã¹ãã¼ã«ããã¹ããããã¨ãã§ãã¾ãã
ãããè¡ãããã®è¯ãæ¹æ³ã¯ã端æ«ãã³ãã³ãããã³ããã§ "version" ã³ãã³ãã使ç¨ããæå¾
ãããã¼ã¸ã§ã³ã®æååãè¿ãã調ã¹ããã¨ã§ãã
> node -v
v22.17.0
Nodejs ããã±ã¼ã¸ããã¼ã¸ã£ã¼ npm ãã¤ã³ã¹ãã¼ã«ããã¦ããã¯ãã§ãåãæ¹æ³ã§ãã¹ãã§ãã¾ãã
> npm -v
10.9.2
ããå°ãåºæ¿çãªãã¹ãã¨ãã¦ããã©ã¦ã¶ã¼ã§æ£ãã URL ã«ã¢ã¯ã»ã¹ããã¨ãã«ãã©ã¦ã¶ã¼ã«åç´ã« "Hello World" ãåºåãããã¨ã¦ãåºæ¬ç㪠"ç´ç²ãª Node" ãµã¼ãã¼ã使ãã¾ãããã
-
次ã®ããã¹ãã hellonode.js ã¨ãããã¡ã¤ã«ã«ã³ãã¼ãã¾ããããã¯ç´ç²ãª Node ã®æ©è½ã使ç¨ãã¾ãï¼Express ããã¯ä½ããã¾ããï¼ã
js// HTTP ã¢ã¸ã¥ã¼ã«ãèªã¿è¾¼ã const http = require("http"); const hostname = "127.0.0.1"; const port = 3000; // HTTP ãµã¼ãã¼ã使ãã3000 çªãã¼ãã§ãªã¯ã¨ã¹ããå¾ æ©ãã¾ãã const server = http.createServer((req, res) => { // HTTP ã¹ãã¼ã¿ã¹ã¨ã³ã³ãã³ãã¿ã¤ããæã¤å¿ç HTTP ãããã¼ãè¨å®ãã¾ãã res.statusCode = 200; res.setHeader("Content-Type", "text/plain"); res.end("Hello World\n"); }); // 3000 çªãã¼ãã§ãªã¯ã¨ã¹ããå¾ æ©ããåä¿¡ããã¨ãã«ãã°åºåããã³ã¼ã«ããã¯é¢æ° server.listen(port, hostname, () => { console.log(`ãµã¼ãã¼ã¯ http://${hostname}:${port}/ ã§å®è¡ä¸`); });ãã®ã³ã¼ã㯠"http" ã¢ã¸ã¥ã¼ã«ãã¤ã³ãã¼ãããããã使ç¨ã㦠3000 çªãã¼ãã§ HTTP ãªã¯ã¨ã¹ããå¾ æ©ãããµã¼ãã¼ã使 (
createServer()) ãã¾ããæ¬¡ã«ãã¹ã¯ãªããã¯ãµã¼ãã¼ããã¹ãããããã«ä½¿ç¨ã§ãããã©ã¦ã¶ã¼ URL ã«ã¤ãã¦ã®ã¡ãã»ã¼ã¸ãã³ã³ã½ã¼ã«ã«åºåãã¾ããcreateServer()颿°ã¯ãHTTP ãªã¯ã¨ã¹ããåä¿¡ããã¨ãã«å¼ã³åºãããã³ã¼ã«ããã¯é¢æ°ã弿°ã¨ãã¦åãã¾ãããã㯠HTTP ã¹ãã¼ã¿ã¹ã³ã¼ã 200 ("OK") ã¨ãã¬ã¼ã³ããã¹ã "Hello World" ã®ã¬ã¹ãã³ã¹ãè¿ãã¾ããã¡ã¢: ãã®ã³ã¼ããä½ããã¦ããã®ãæ£ç¢ºã«çè§£ã§ããªãã¦ãå¿é ããªãã§ãã ãããExpress ã使ãå§ããããã³ã¼ãã«ã¤ãã¦è©³ãã説æãã¾ãã
-
ã³ãã³ãããã³ããã§
hellonode.jsãã¡ã¤ã«ã¨åããã£ã¬ã¯ããªã¼ã«ç§»åããæ¬¡ã®ããã«ã¹ã¯ãªããåã¨ã¨ãã«nodeãå¼ã³åºãã¦ãµã¼ãã¼ãèµ·åãã¾ããbashnode hellonode.jsãµã¼ãã¼ãèµ·åããã¨ããµã¼ãã¼ãåä½ãã¦ãã IP ã¢ãã¬ã¹ã示ãã³ã³ã½ã¼ã«åºåã表示ããã¾ãã
Server running at http://127.0.0.1:3000/
-
http://127.0.0.1:3000ã® URL ã«ç§»åãã¾ãããã¹ã¦ããã¾ããã£ããããã©ã¦ã¶ã¼ã¯åã«æåå "Hello World" ã表示ããã¯ãã§ãã
npm ã®ä½¿ç¨
Node èªä½ã®æ¬¡ã«ãnpm 㯠Node ã¢ããªã±ã¼ã·ã§ã³ãæä½ããããã®æãéè¦ãªãã¼ã«ã§ãã
npm ã¯ãã¢ããªã±ã¼ã·ã§ã³ãéçºããã¹ããéç¨ã«å¿
è¦ãªããã±ã¼ã¸ï¼JavaScript ã©ã¤ãã©ãªã¼ï¼ãåå¾ããããã«ä½¿ç¨ããã¾ããã¾ããéçºããã»ã¹ã§ä½¿ç¨ããããã¹ãããã¼ã«ãå®è¡ããããã«ä½¿ç¨ããããã¨ãããã¾ãã
ã¡ã¢: Node ããè¦ãã¨ãExpress 㯠npm ã使ç¨ãã¦ã¤ã³ã¹ãã¼ã«ãã¦ããç¬èªã®ã³ã¼ãã§å¿ è¦ã¨ãããã 1 ã¤ã®ããã±ã¼ã¸ã§ãã
æåã§ npm ã使ç¨ãã¦ãå¿ è¦ãªåããã±ã¼ã¸ãå¥ã ã«åãåºããã¨ãã§ãã¾ããé常ã代ããã« package.json ã¨ãããã¬ã¼ã³ããã¹ãã®å®ç¾©ãã¡ã¤ã«ã使ç¨ãã¦ä¾åé¢ä¿ã管çãã¾ãããã®ãã¡ã¤ã«ã«ã¯ããã±ã¼ã¸ã®ååããã¼ã¸ã§ã³ã説æãå®è¡ããåæãã¡ã¤ã«ããããã¯ã·ã§ã³ä¾åé¢ä¿ãéçºä¾åé¢ä¿ããããåä½å¯è½ãª Node ã®ãã¼ã¸ã§ã³ãªã©ãç¹å®ã® JavaScript "package" ã«å¯¾ãããã¹ã¦ã®ä¾åé¢ä¿ãä¸è¦§è¡¨ç¤ºããã¾ããpackage.json ãã¡ã¤ã«ã«ã¯ãnpm ãã¢ããªã±ã¼ã·ã§ã³ãåå¾ãã¦å®è¡ããããã«å¿ è¦ãªãã®ããã¹ã¦å«ã¾ãã¦ããå¿ è¦ãããã¾ã (åå©ç¨å¯è½ãªã©ã¤ãã©ãªã¼ã使ãã¦ããå ´åã¯ããã®å®ç¾©ã使ç¨ãã¦ããã±ã¼ã¸ã npm ãªãã¸ããªã¼ã«ã¢ãããã¼ãããä»ã®ã¦ã¼ã¶ã¼ãå©ç¨ã§ããããã«ãã¾ã)ã
ä¾åé¢ä¿ã®è¿½å
æ¬¡ã®æé ã§ã¯ npm ã使ç¨ãã¦ããã±ã¼ã¸ããã¦ã³ãã¼ããããããããã¸ã§ã¯ãã®ä¾åé¢ä¿ã«ä¿åãã¦ãããããã Node ã¢ããªã±ã¼ã·ã§ã³ã§è¦æ±ããæ¹æ³ã示ãã¾ãã
ã¡ã¢: ããã§ã¯ Express ããã±ã¼ã¸ãåå¾ãã¦ã¤ã³ã¹ãã¼ã«ããããã®æé ã示ãã¾ããå¾ã§ããã®ããã±ã¼ã¸ãªã©ã Express Application Generator ã使ç¨ãã¦ãã§ã«ã©ã®ããã«æå®ããã¦ãããã示ãã¾ãããã®ç¯ã¯ npm ãã©ã®ããã«æ©è½ããã®ããããã³ Application Generator ã«ãã£ã¦ä½ã使ããã¦ããã®ããçè§£ããã®ã«å½¹ç«ã¡ã¾ãã
-
ã¾ããæ°ããã¢ããªã±ã¼ã·ã§ã³ç¨ã®ãã£ã¬ã¯ããªã¼ã使ããããã«ç§»åãã¾ãã
bashmkdir myapp cd myapp -
ã¢ããªã±ã¼ã·ã§ã³ç¨ã® package.json ãã¡ã¤ã«ã使ããã«ã¯ãnpm
initã³ãã³ãã使ç¨ãã¾ãããã®ã³ãã³ãã¯ã¢ããªã±ã¼ã·ã§ã³ã®ååã¨ãã¼ã¸ã§ã³ãåæã¨ã³ããªã¼ãã¤ã³ããã¡ã¤ã«ã®ååï¼æ¢å®ã§ã¯ index.jsï¼ãªã©ããã¾ãã¾ãªãã¨ãè¦æ±ãã¾ããä»ã®ã¨ãããæ¢å®å¤ããã®ã¾ã¾ä½¿ç¨ãã¾ããbashnpm initpackage.json ãã¡ã¤ã« (
cat package.json) ã表示ããã¨ãåãå ¥ããæ¢å®å¤ã表示ãããæå¾ã«ã©ã¤ã»ã³ã¹ã表示ããã¾ããjson{ "name": "myapp", "version": "1.0.0", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "description": "" } -
myappãã£ã¬ã¯ããªã¼ã« Express ãã¤ã³ã¹ãã¼ã«ãããããããªãã® package.json ãã¡ã¤ã«ã®ä¾åé¢ä¿ãªã¹ãã«ä¿åãã¦ãã ãããbashnpm install expresspackage.json ã®ä¾åé¢ä¿ç¯ã package.json ãã¡ã¤ã«ã®æå¾ã«è¡¨ç¤ºãããExpress ãå«ã¾ãã¾ãã
json{ "name": "myapp", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "express": "^5.1.0" } } -
Express ã©ã¤ãã©ãªã¼ã使ç¨ããã«ã¯ã
require()颿°ã index.js ãã¡ã¤ã«ã§å¼ã³åºããã¢ããªã±ã¼ã·ã§ã³ã«å«ãã¾ãã ããã§ããã®ãã¡ã¤ã«ã "myapp" ã¢ããªã±ã¼ã·ã§ã³ãã£ã¬ã¯ããªã¼ã®ã«ã¼ãã«ä½æãã以ä¸ã®å 容ãä¸ãã¾ããjsconst express = require("express"); const app = express(); const port = 3000; app.get("/", (req, res) => { res.send("Hello World!"); }); app.listen(port, () => { console.log(`Example app listening on port ${port}!`); });ãã®ã³ã¼ãã¯ãæå°éã® "HelloWorld" Express ã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã示ãã¦ãã¾ãã ãã㯠"express" ã¢ã¸ã¥ã¼ã«ãã¤ã³ãã¼ãããããã使ç¨ã㦠3000 çªãã¼ãã§ HTTP ãªã¯ã¨ã¹ããå¾ æ©ãããµã¼ãã¼ (
app) ã使ãããµã¼ãã¼ããã¹ãããããã«ä½¿ç¨ã§ãããã©ã¦ã¶ã¼ URL ã説æããã¡ãã»ã¼ã¸ãã³ã³ã½ã¼ã«ã«åºåãã¾ããapp.get()颿°ã¯ãæå®ããã URL ãã¹ ('/') ã§ HTTP ã®GETãªã¯ã¨ã¹ãã«ã®ã¿å¿çãã¾ãããã®å ´åã颿°ãå¼ã³åºã㦠Hello World! ã¡ãã»ã¼ã¸ãéä¿¡ãã¾ããã¡ã¢:
`Example app listening on port ${port}!`ã®éå¼ç¨ç¬¦ã§ã$portã®å¤ãæååã«åãè¾¼ã¿ã¾ãã -
ã³ãã³ãããã³ããã§ã¹ã¯ãªããã使ç¨ã㦠node ãå¼ã³åºããã¨ã§ãµã¼ãã¼ãèµ·åã§ãã¾ãã
bashnode index.js以ä¸ã®ãããªã³ã³ã½ã¼ã«åºåã表示ããã¾ãã
Example app listening on port 3000
-
URL
http://localhost:3000/ã«ç§»åãã¾ãã ãã¹ã¦ããã¾ããã£ããããã©ã¦ã¶ã¼ã¯åã«æåå "Hello World!" ã表示ããã¯ãã§ãã
éçºã®ä¾åé¢ä¿
ä¾åé¢ä¿ãéçºä¸ã«ã®ã¿ä½¿ç¨ãããå ´åã¯ã代ããã«ãéçºä¾åé¢ä¿ãã¨ãã¦ä¿åããå¿ è¦ãããã¾ãï¼ããã±ã¼ã¸ã¦ã¼ã¶ã¼ãæ¬çªç°å¢ã«ã¤ã³ã¹ãã¼ã«ããå¿ è¦ããªãããã«ããããï¼ããã¨ãã°ãä¸è¬ç㪠JavaScript Linting ãã¼ã«ã® ESLint ã使ç¨ããã«ã¯ã次ã®ããã« npm ãå¼ã³åºãã¾ãã
npm install eslint --save-dev
次ã®é ç®ãã¢ããªã±ã¼ã·ã§ã³ã® package.json ã«è¿½å ããã¾ãã
{
"devDependencies": {
"eslint": "^9.30.1"
}
}
ã¡ã¢: ããªã³ã¿ã¼ãã¯ä¸é£ã®ã³ã¼ãã£ã³ã°ã®ãã¹ããã©ã¯ãã£ã¹ã«æºæ ãã¦ãããã©ãããèªèãã¦å ±åããããã«ãã½ããã¦ã§ã¢ã§éçåæãå®è¡ãããã¼ã«ã§ãã
ã¿ã¹ã¯ã®å®è¡
ä¾åé¢ä¿ã®å®ç¾©ã¨åå¾ã«å ãã¦ãpackage.json ãã¡ã¤ã«ã«ååä»ãã¹ã¯ãªãããå®ç¾©ããnpm ãå¼ã³åºãã¦ãããã run-script ã³ãã³ãã§å®è¡ãããã¨ãã§ãã¾ãããã®ã¢ããã¼ãã¯ãå®è¡ä¸ã®ãã¹ããéçºã®ä¸é¨ãèªååãããããã¼ã«ãã§ã¼ã³ (ãã¨ãã° JavaScript ã®ç¸®å°ãç»åã®ç¸®å°ãã³ã¼ãã® LINT/åæãªã©ã®ãã¼ã«ã®å®è¡) ãæ§ç¯ãããããããã«ãã使ç¨ããã¾ãã
ã¡ã¢: Gulp ã Grunt ã®ãããªã¿ã¹ã¯ã©ã³ãã¼ããã¹ããä»ã®å¤é¨ãã¼ã«ãå®è¡ããããã«ä½¿ããã¨ãã§ãã¾ãã
ãã¨ãã°ãåã®ç¯ã§æå®ãã eslint éçºä¾åé¢ä¿ãå®è¡ããããã®ã¹ã¯ãªãããå®ç¾©ããã«ã¯ã次ã®ã¹ã¯ãªãããããã¯ã package.json ãã¡ã¤ã«ã«è¿½å ãã¾ãï¼ã¢ããªã±ã¼ã·ã§ã³ã½ã¼ã¹ã /src/js ãã©ã«ãã¼ã«ããã¨ä»®å®ãã¾ãï¼ã
{
"scripts": {
// â¦
"lint": "eslint src/js"
// â¦
}
}
ããå°ã詳ãã説æããã¨ãeslint src/js ã¯ãapp ãã£ã¬ã¯ããªã¼å
ã® src/js ãã£ã¬ã¯ããªã¼ã«å«ã¾ãã JavaScript ãã¡ã¤ã«ã«å¯¾ã㦠eslint ãå®è¡ããããã« terminal/command è¡ã«å
¥åã§ããã³ãã³ãã§ããã¢ããªã® package.json ãã¡ã¤ã«å
ã«ä¸è¨ãå«ããã¨ããã®ã³ãã³ãã®ã·ã§ã¼ãã«ãã - ã¤ã¾ã lint ãæä¾ããã¾ãã
ããããã°ãnpm ã使ã£ã¦ eslint ãå®è¡ãããã¨ãã§ãã¾ãã
npm run-script lint
# OR (using the alias)
npm run lint
ãã®ä¾ã¯å ã®ã³ãã³ãããçãè¦ããªãããããã¾ããããè¤æ°ã®ã³ãã³ãã®ãã§ã¼ã³ãå«ãã¦ãnpm ã¹ã¯ãªããå ã«ãã£ã¨å¤§ããªã³ãã³ããå«ãããã¨ãã§ãã¾ããä¸åº¦ã«ãã¹ã¦ã®ãã¹ããå®è¡ããåä¸ã® npm ã¹ã¯ãªãããæå®ã§ãã¾ãã
Express Application Generator ã®ã¤ã³ã¹ãã¼ã«
Express Application Generator ãã¼ã«ã¯ Express ã¢ããªã±ã¼ã·ã§ã³ã®ãã¹ã±ã«ãã³ããçæãã¾ããæ¬¡ã«ç¤ºãããã«ãnpm ã使ç¨ãã¦ã¸ã§ãã¬ã¼ã¿ã¼ãã¤ã³ã¹ãã¼ã«ãã¾ãã
npm install express-generator -g
ã¡ã¢:
Ubuntu ã macOS ã§ã¯ããã®è¡ã®æ¥é è¾ã« sudo ãä»ããå¿
è¦ãããããããã¾ããã-g ãã©ã°ãæå®ããã¨ããã¼ã«ãã°ãã¼ãã«ã«ã¤ã³ã¹ãã¼ã«ãã¦ãã©ãããã§ãå¼ã³åºããã¨ãã§ãã¾ãã
æ¢å®ã®è¨å®ã§ "helloworld" ã¨ããååã® Express ã¢ããªã使ããã«ã¯ã使ããå ´æã«ç§»åãã¦ãå³ã®ããã«ã¢ããªãå®è¡ãã¾ãã
express helloworld
ã¡ã¢:
å¤ããã¼ã¸ã§ã³ (< 8.2.0) ã® nodejs ã使ç¨ãã¦ããªãéããã¤ã³ã¹ãã¼ã«ãã¹ããããã¦npx ã§ express-generator ãå®è¡ãããã¨ãã§ãã¾ãã
ããã¯ã¤ã³ã¹ãã¼ã«ãã¦ãã express-generator ãå®è¡ããã®ã¨åã广ãããã¾ãããããã±ã¼ã¸ãã·ã¹ãã ã«ã¤ã³ã¹ãã¼ã«ããããã§ã¯ããã¾ããã
npx express-generator helloworld
ã¾ãã使ç¨ãããã³ãã¬ã¼ãã©ã¤ãã©ãªã¼ãä»ã«ãå¤ãã®è¨å®ãæå®ãããã¨ãã§ãã¾ãã
ãã¹ã¦ã®ãªãã·ã§ã³ãè¦ãã«ã¯ help ã³ãã³ãã使ç¨ãã¦ãã ããã
express --help
ã¸ã§ãã¬ã¼ã¿ã¼ã¯ãã³ã³ã½ã¼ã«ã«ãã«ãã®é²è¡ç¶æ³ã表示ããªãããç¾å¨ã®å ´æã®ãµããã©ã«ãã¼ã«æ°ãã Express ã¢ããªã使ãã¾ãã å®å ¨ã«å®äºããã¨ããã¼ã«ã¯ Node ä¾åé¢ä¿ãã¤ã³ã¹ãã¼ã«ãã¦ã¢ããªãå§ããã«ã¯å ¥åããå¿ è¦ãããã³ãã³ãã表示ãã¾ãã
æ°ããã¢ããªã«ã¯ãã«ã¼ããã£ã¬ã¯ããªã¼ã« package.json ãã¡ã¤ã«ãããã¾ãã ãããéãã¨ãExpress ããã³ãã¬ã¼ãã©ã¤ãã©ãªã¼ Jade ãªã©ãã¤ã³ã¹ãã¼ã«ããã¦ããä¾åé¢ä¿ã確èªã§ãã¾ãã
{
"name": "helloworld",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"express": "~4.16.1",
"http-errors": "~1.6.3",
"jade": "~1.11.0",
"morgan": "~1.9.1"
}
}
次ã«ç¤ºãããã«ãnpm ã使ç¨ã㦠helloworld ã¢ããªã®ãã¹ã¦ã®ä¾åé¢ä¿ãã¤ã³ã¹ãã¼ã«ãã¾ãã
cd helloworld
npm install
次ã«ã以ä¸ã®ããã«ã¢ããªãå®è¡ãã¾ã (ã³ãã³ã㯠Windows 㨠Linux/macOS ã§è¥å¹²ç°ãªãã¾ã)ã
# Windows ã®ã³ãã³ãããã³ããã§ helloworld ãå®è¡
SET DEBUG=helloworld:* & npm start
# Windows ã® PowerShell ã§ helloworld ãå®è¡
SET DEBUG=helloworld:* | npm start
# Linux/macOS ã§ helloworld ãå®è¡
DEBUG=helloworld:* npm start
DEBUG ã³ãã³ãã¯æç¨ãªãã®ã³ã°ã使ãããã®çµæã以ä¸ã«ç¤ºããããªåºåãå¾ããã¾ãã
>SET DEBUG=helloworld:* & npm start
> helloworld@0.0.0 start D:\GitHub\express-tests\helloworld
> node ./bin/www
helloworld:server Listening on port 3000 +0ms
ãã©ã¦ã¶ã¼ãéã㦠http://localhost:3000/ ã«ç§»åããæ¢å®ã® Express ã¦ã§ã«ã«ã ãã¼ã¸ã表示ãã¾ãã

ã¹ã±ã«ãã³ã¢ããªã±ã¼ã·ã§ã³ã®çæã«é¢ããè¨äºã«ã¢ã¯ã»ã¹ããããçæãããã¢ããªã«ã¤ãã¦è©³ãã説æãã¾ãã
ã¾ã¨ã
ããã§ãExpress ã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã使ããããã«ä½¿ç¨ã§ãã Node éçºç°å¢ãã³ã³ãã¥ã¼ã¿ã¼ä¸ã§ç¨¼åãã¦ãã¾ããã¾ããnpm ã使ç¨ã㦠Express ãã¢ããªã±ã¼ã·ã§ã³ã«ã¤ã³ãã¼ãããæ¹æ³ãããã³ Express Application Generator ãã¼ã«ã使ç¨ãã¦ã¢ããªã±ã¼ã·ã§ã³ã使ãã¦å®è¡ããæ¹æ³ã«ã¤ãã¦ã説æãã¾ããã
次ã®è¨äºã§ã¯ããã®ç°å¢ã¨é¢é£ãã¼ã«ã使ã£ã¦å®å ¨ãªã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ãæ§ç¯ããããã®ãã¥ã¼ããªã¢ã«ãå§ãã¾ãã
é¢é£æ å ±
- ãã¦ã³ãã¼ã ãã¼ã¸ (nodejs.org)
- Express ã®ã¤ã³ã¹ãã¼ã« (expressjs.com)
- Express Application Generator (expressjs.com)
- Using Node.js with Windows subsystem for Linux (docs.microsoft.com)