MVC 모델

api 서버를 구축하기 위해 mvc 모델을 구축해보았다.
db는 mongodb를 이용하였고 연동시켜 보았다.

routes에서 요청을 받고 controllers로 요청을 하는 그림을 보고 https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/routes 링크를 참조하며 공부한 결과 아래와 같은 mvc 패턴을 구현하였다.

app.js

var express = require('express');
var http = require('http');
var bodyParser = require('body-parser');
 
var app = express();
 
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
 
app.listen(8888);
 
console.log("Server is Running...");
 
var catalog = require('./api/routes/catalog');
 
app.use('/', catalog);
 

userController.js

(function() {
  'use strict';
})();
 
var User = require('../models/userModel.js');
 
exports.get_dummy = function (req, res) {
  res.end('get_dummy');
};
 
exports.put_dummy = function (req, res) {
  res.end('put_dummy');
};
 
exports.post_dummy = function (req, res) {
  var userIns = User();
  userIns.name = 'jung';
  res.end(userIns.name);
};
 
exports.delete_dummy = function (req, res) {
  res.end('delete_dummy');
};

catalog.js(route)

catalog.js 에서 각 controllers를 추가하여 라우팅을 해준다.

(function() {
  'use strict';
})();
 
var express = require('express');
var router = express.Router();
 
var userController = require('../controllers/userController');
 
router.get('/', function (req, res) {
  res.redirect('user router');
});
 
//user router
router.get('/user', userController.get_dummy);
router.post('/user', userController.post_dummy);
router.put('/user', userController.put_dummy);
router.delete('/user', userController.delete_dummy);
 
 
module.exports = router;

userModel.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
 
mongoose.createConnection('mongodb://localhost:27017/test');
 
var UserSchema = new Schema({
    name: String,
    address: String,
    phone: String,
    email: String
});
 
module.exports = mongoose.model('User', UserSchema);


'Framework > Nodejs' 카테고리의 다른 글

node js, mongodb 연동 with mongoose  (0) 2017.08.16
이메일 발송  (0) 2017.07.13
mocha  (0) 2017.07.05
미들웨어(1):cookieParser, bodyParser, limit, query  (0) 2017.04.05
connect  (0) 2017.04.04

+ Recent posts