한 시간 안에 Node+Express+MongoDB로 웹 앱을 만드세요.

Node를 사용해 「Hello, World!」페이지를 표시하는 Web 앱의 튜토리얼 상당히 있습니다만, 자신의 경험으로 DB에 액세스할 때까지의 튜로치얼이 적다고 하는 것으로, 이번 기사의 테마는 간단하게 MongoDB 에 저장된 데이터를 가져오거나 MongoDB에 데이터를 쓰는 웹 앱의 단계를 소개합니다.

하나, 환경 구축



1단계: Node.js 설치



node.js 공식 사이트를 클릭하여 사용중인 OS를 자동 감지하기 때문에 설치 버튼을 누르기 만하면됩니다.
htps : // 그래서 js. 오 rg/엔/
설치 파일을 다운로드하고 실행하면 Node.js와 자주 사용되는 패키지 관리자의 NPM도 설치됩니다.
mac의 경우 terminal, windows의 경우 command prompt를 열고 web 앱을 저장하는 directory를 cd합시다.
(예:/Users/webapp)

2단계: Express & Express Generator 설치



npm -g express
npm -g express-generator

3단계: MongoDB 설치



이것으로 DB에 액세스 할 수있는 web 앱이 움직일 수있는 환경 구축이 완료되었습니다.
이어서 웹 앱을 만드세요.

둘째, 'Hello World' 웹 앱 만들기



Step 1 : Express generator를 활용하여 web app의 병아리를 작성



express app1

app1이라는 폴더가 만들어졌는지 확인해 봅시다.

2단계: app1 폴더로 이동



cd ~/app1

3단계: 앱이 실행되는 dependency 설치



npm install

4단계: 앱 시작



npm start

스텝 5:web app의 가동 확인



를 방문하여 아래 화면이 나오는지 확인하세요.


6단계: hello world 출력



~/app3/routers/index.js를 열고 아래 코드가 있는지 확인합니다.
var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;

위의 module.exports=router 줄 앞에 다음 코드를 추가합니다.
/* GET Hello World page. */
router.get('/helloworld', function(req, res) {
res.render('helloworld', { title: 'Hello, World!' });
});

~app3/views/에 hellowrold.jade라는 새 파일을 만듭니다. 내용은
extends layout

block content
  h1= title
  p Welcome to #{title}

로 저장합니다.

http://localhost:3000/helloworld
방문하여 'hello world'의 메시지를 확인하세요.

셋째, MongoDB 데이터 얻기



1단계: 서버를 닫고 MongoDB에 액세스하는 패키지 추가



~app1/package.json을 열고,
{
  "name": "app3",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.17.1",
    "cookie-parser": "~1.4.3",
    "debug": "~2.6.3",
    "express": "~4.15.2",
    "jade": "~1.11.0",
    "morgan": "~1.8.1",
    "serve-favicon": "~2.4.2"
  }
}

다음과 같이 mongodb 모듈을 추가합니다.
{
  "name": "app3",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.17.1",
    "cookie-parser": "~1.4.3",
    "debug": "~2.6.3",
    "express": "~4.15.2",
    "mongodb": "^2.2.25",
    "monk": "^4.0.0",
    "jade": "~1.11.0",
    "morgan": "~1.8.1",
    "serve-favicon": "~2.4.2"
  }
}

ternimal로 돌아가서 npm install을 실행하고 추가 한 모듈을 설치하십시오.

2 단계 : MongoDB 데이터를 저장하는 디렉토리 생성



~/app1/data로 디렉토리 만들기

3단계: MongoDB 데이터베이스 생성



~/mongodb/bin으로 이동하여 mongo 경로를 설정하고 서버를 시작합니다.
mongod --dbpath ~/app1/data/

다른 ternimal을 열고 app1이라는 데이터베이스를 만듭니다.
use app1db

4단계: 데이터베이스에 데이터 추가



mongodb에서 처리할 수 있는 데이터의 형식은 json 형식입니다.
{
 user:user1,
 e-mail:[email protected]
}

위의 데이터를 app1db에 추가합니다.
db.usercollection.insert({"user":"user1","e-mail":"[email protected]"})

5단계: app1db와 app1을 연결



~/app1/app.js에서 처음 몇 줄을 확인하십시오.
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

mongodb와 연결하기 위해 다음 코드 추가
// New Code
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/app1db');

그런 다음 app1db가 app1에 액세스하도록 설정
app.use(function(req,res,next){
    req.db = db;
    next();
});

라는 코드
app.use('/', index);
app.use('/users', users);

위에 삽입합니다.

6단계: app1db에 있는 데이터를 app1에서 가져오기



~/app1/routes/index.js를 열고 아래 코드를 추가합니다.
/* userlist htmlページを作成 */
router.get('/userlist', function(req, res) {
    var db = req.db;
    var collection = db.get('usercollection');
    collection.find({},{},function(e,docs){
        res.render('userlist', {
            "userlist" : docs
        });
    });
});

~/app1/views/에 userlist.jade를 새로 만들고 아래 코드를 넣습니다. 여기 jade 엔진을 사용하고 있으므로 의도에주의하십시오.
extends layout

  block content
        h1.
             User List
        ul
             each user, i in userlist
                   li
                        a(href="mailto:#{user.e-mail}")= user.user

7단계: 가져온 데이터 확인



npm start
http://localhost:3000/userlist

아래 페이지가 나왔습니다. 이것은 mongodb에서 가져온 데이터입니다.


이상으로 Node+Express+MongoDB의 웹 앱을 만들었습니다.



참고:

좋은 웹페이지 즐겨찾기