Node.js + Express + MongoDB(mongoose) ãå§ãã
å
容ã¯ã»ã¼Creating a REST API using Node.js, Express, and MongoDB | Christophe Coenraetsã®ã¾ã¾ã§ãã
çµç¤ã§ã® mondodb ã®ã¢ã¯ã»ã¹ã®é¨åã®ã¿å
ãµã¤ãã¨éã mongoose ã使ã£ãã³ã¼ãã«ç½®ãæãã¦ã¿ã¾ããã
ç°å¢ã¯ Windows8 pro x64 ã§ãã
Node.js ãã¤ã³ã¹ãã¼ã«ãã
- node.jsã«ã¦ãã¤ã³ã¹ãã¼ã«ãã¿ã³ãã¯ãªãã¯ã
- ãã¦ã³ãã¼ãããã¤ã³ã¹ãã¼ã©ãå®è¡ãã¤ã³ã¹ãã¼ã«å®äºæç¹ã§ãã¹ãéã£ã¦ãã¾ããã
- ã³ãã³ãããã³ããã§ "node -v"ã¨æã¡ããã¼ã¸ã§ã³ãè¿ã£ã¦ãããã¨ã確èªãã¦ããã¾ãã
ããã§ Node.js ã®ä½¿ç¨æºåã¯OKã
- ä»å使¥ç¨ã®ãã©ã«ãã使ãã¦ããã¾ããï¼ä»¥å¾ãã«ã¼ããã©ã«ãã¨å¼ã³ã¾ããï¼
- ã«ã¼ããã©ã«ãå ã« server.js ã使ãã¾ããå ¬å¼ã«ãããããªãã¿ã®ãã¤ã
- ã³ãã³ãããã³ããã§ä»¥ä¸ãå®è¡ãããµã¼ãã¼ãèµ·åãã¾ãã
node server.js
http://localhost:3000 ã«ã¢ã¯ã»ã¹ããã¨ã"Hello, World"ã®æååãè¿ã£ã¦ãããã¨ã確èªã§ãã¾ãã
Express ãã¤ã³ã¹ãã¼ã«ãã
Expressã¯Node.jsã®è»½éWebã¢ããªã±ã¼ã·ã§ã³ãã¬ã¼ã ã¯ã¼ã¯ã§ããå°ã調ã¹ãã¨ãããExpress ã ã¨è¦æ¨¡ã大ãããªãã¨ï¼ã¤ã®ãã¡ã¤ã«ã«è²ããªå¦çãå
¥ã£ã¦ç®¡çã大å¤ã«ãªããããã§ãã
å°æ¥çã«ã¯Sailsã¨ãããã¤ãããã®ããªï¼ãã®è¾ºãã¯ä»å¾ã®èª¿æ»å¯¾è±¡ã¨ãããã¨ã§ã
ã§ã¯ãæ¬é¡ã«æ»ã£ã¦ã
- ã«ã¼ããã©ã«ãå ã« package.json ã使ãã¾ãã
- ã³ãã³ãããã³ããã§ä»¥ä¸ãå®è¡ããExpress ãã¤ã³ã¹ãã¼ã«ãã¾ãã
# ãããã·ç°å¢ã®å ´åã¯äºåã«ãããã·ãæå®ãã¦ãã npm config set proxy http://url:port npm install
Expressã¢ã¸ã¥ã¼ã«ãnode_modulesã®ãµããã©ã«ãã«ã¤ã³ã¹ãã¼ã«ããã¾ãã
server.js ãä¿®æ£ãã¦ãµã¼ãã¼ãåèµ·åããExpress ãåä½ãã¦ãããã¨ã確èªãã¾ãã
以ä¸ã®ã¢ãã¬ã¹ã«ã¢ã¯ã»ã¹ããã¨ãããããã® JSON ãè¿ã£ã¦ãããã¨ã確èªã§ãã¾ãã
| ãã¼ã¿ãã¼ã¹å ã®ãã¹ã¦ã®ã¯ã¤ã³ãåå¾ï¼ | http://localhost:3000/wines |
| ç¹å®ã®IDã§ã¯ã¤ã³ãåå¾ï¼ | http://localhost:3000/wines/1 |
ãã¡ã¤ã³ãªãã¸ã§ã¯ãã®åé¢
ãã¡ã¤ã³ãªãã¸ã§ã¯ã(ä»å㯠wine)ãã¢ã¸ã¥ã¼ã«åã㦠server.js ããåé¢ãã¾ãã
- ã«ã¼ããã©ã«ãé ä¸ã« routes ãã©ã«ãã使ãã¾ãã
- routes ãã©ã«ãã« wines.js ã使ããserver.js ãã wine.js ãå¼ã³åºãããã«å¤æ´ãã¾ãã
- ãµã¼ãã¼ãåèµ·åããååã¨åæ§ã« JSON ãè¿ã£ã¦ãããã¨ããã©ã¦ã¶ã§ç¢ºèªãã¾ãã
MongoDB ãã¤ã³ã¹ãã¼ã«ãã
- Downloads - MongoDBããããã¦ã³ãã¼ããã¦è§£åãã¾ãã
- Install MongoDB on Windowsã«å¾ã£ã¦ã»ããã¢ãããã¾ãã
- è§£åå¾ã«ãã£ãã®ã¯ãdata ãã©ã«ã㨠data\db ãã©ã«ããç¨æãããããã
- ãã®ç¶æ ã§ mongod.exe ãå®è¡ãã¦ãä¸è¨ãã©ã«ãã not found ã¨ãªã£ãã®ã§ã以ä¸ã®ããã« --dbpath ãªãã·ã§ã³ã§å ´æãæå®ãã¦å®è¡ãã¦ãã¾ãã使 ãã
E:\Users\bin\mongodb\bin\mongod.exe --dbpath "E:\Users\bin\mongodb\data"
âãå®è¡ãã¦ãâã¨åºãã°OKã
ã»ã»ã» Wed Jul 10 15:12:29.751 [websvr] admin web console waiting for connections on port 28017 Wed Jul 10 15:12:29.751 [initandlisten] waiting for connections on port 27017
Mongoose ãã¤ã³ã¹ãã¼ã«ãã
- package.json ã« mongoose ã®ä¾åã追è¨ããnpm ã§ã¤ã³ã¹ãã¼ã«ãã¾ãã
npm install
mongooseã«ã¤ãã¦ã¯ã以ä¸ã®ãµã¤ããåèã«ãã¾ããã
Mongoose API v3.6.14
node.js + mongoose + mongodbで遊ぶ - Last Verse
node.js から MongoDB にアクセス (Mongoose の紹介) - KrdLab's blog
å ¬å¼ãµã¤ãã® api ã«ã¤ãã¦ã¯ãmodel.jsã§ã¡ã½ããåãè¦ã¦ãã°ãªãã¨ãªãç¨éã¯ãããã¾ããshow code ãã¯ãªãã¯ããã°å ·ä½çãªå®è£ ãè¦ãã¾ãã
REST APIã®å®è£
URIã®è¨è¨ã¯ä»¥ä¸ã«ãªãã¾ãã
| Method | URL | ã¢ã¯ã·ã§ã³ |
| GET | /wines | ãã¹ã¦ã®ã¯ã¤ã³ãåãåºã |
| GET | /wines/:id | æå®ããã_idã®ã¯ã¤ã³ãåãåºã |
| POST | /wines | æ°ããã¯ã¤ã³ã追å |
| PUT | /wines/:id | æå®_idã®ã¯ã¤ã³ãæ´æ° |
| DELETE | /wines/:id | æå®ããã_idã®ã¯ã¤ã³ãåé¤ |
server.js 㨠wine.js ã以ä¸ã®ããã«æ¸ãæãã¾ãã
追å åé¤ã¯åé¡ãªãåºæ¥ãã®ã§ãããæ´æ°ã®é¨åã§å°ãåµãã¾ãããfindByIdAndUpdate ã®ç¬¬2弿°ã«æ´æ°ããã Object ãå
¥ããã®ã§ããããã® Object 㯠_id ã®è¦ç´ ãæã£ã¦ãã¦ã¯ãã¡ã§ãã
ãã®ãããåã®è¡ã§ _id è¦ç´ ã delete ãã¦ããããã§ããåèã«ãã¦ãããµã¤ãã¯ç¹å®ã®è¦ç´ ãæå®ãã¦æ´æ°ãã¦ããã®ã§ãæåæ°ä»ãã¾ããã§ãããããèããã°è³æ¥µå½ç¶ã®ãã¨ãªã®ã§ããã
ãµã¼ãã¼ãåèµ·åãã¦ãä¸è¨URLãè¸ãã§ç¢ºèªãã¾ãã
ã¨ãã£ã¦ããä»ã®ç¶æ
ã§ GET 以å¤ã®ã¡ã½ãããå®è¡ãããã¨ã¯é£ããã§ãã®ã§ãå
ãµã¤ãã§ã¯curl and libcurlãå©ç¨ãã¦ã³ãã³ãã§ç¢ºèªãã¦ãã¾ãã
æå¾ã®ç¢ºèªã¾ã§åºæ¥ã¦ããªããã©ãããã¾ã§ã
å
ãµã¤ããåèã«ãã¦ããä¸è¨ã®æ¸ç±ã¯ãmondoDBã®ãã©ã¤ããç´æ¥å©ãã¦ãã¾ããããå人çã«ã¯ mongoose ã¯APIãåãããããã好ã¿ã§ããã

- ä½è : æ²³æåä¹,å·å°»å
- åºç社/ã¡ã¼ã«ã¼: æè¡è©è«ç¤¾
- çºå£²æ¥: 2012/12/07
- ã¡ãã£ã¢: 大忬
- è³¼å ¥: 4人 ã¯ãªãã¯: 1,144å
- ãã®ååãå«ãããã° (7ä»¶) ãè¦ã