통합구현 # 환경설정

김형우·2022년 3월 11일
0

mongoose + vue.js

목록 보기
1/15

1. 백엔드 만들기

1. 구동용 프로그램 설치

  • npm 설치시 -g를 입력하면 C:\ 안에 어딘가에 설치된다.

CMD> npm i express-generator -g

CMD> npm i nodemon -g

2. 백엔드 프로젝트 생성

CMD> express -e exp_20220311

CMD> cd exp_20220311

CMD> npm install
: node_modules

CMD> nodemon --inspect ./bin/www
: 실행 (소스코드 변경 적용됨)

Chrome> http://127.0.0.1:3000/

3. MongoDB연동

  • npm 설치시 --save를 입력하면 modules 안에 설치된다.

CMD> npm install --save mongoose

CMD> npm install --save mongoose-sequence

CMD> npm i --save socket.io
: 실시간 처리

2. VSCODE

1. 첫화면


1-1. 첫화면 변경

2. 폴더생성

: models
2-1. routes가 controller에 해당
2-2. models에 entity 만듦

3. app.js

3-1. DB연동
: CMD> npm i mongoose --save
3-2. routes 등록/사용
: 등록 = var bookRouter = require('./routes/book')
: 사용 = app.use('/book', bookRouter);

// npm i mongoose --save
var mongoose = require('mongoose');
mongoose.connect('mongodb://id201:pw201@1.234.5.158:37017/db201');
var db = mongoose.connection;
db.once('open', function() {
  console.log('mongodb 연결됨');
});
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

// 여기 한번에
// npm i mongoose --save
var mongoose = require('mongoose');
mongoose.connect('mongodb://id201:pw201@1.234.5.158:37017/db201');
var db = mongoose.connection;
db.once('open', function() {
  console.log('mongodb 연결됨');
});

// routes 등록
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
// 내가 만든 routes 등록
var bookRouter = require('./routes/book')

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

// routes 사용설정
app.use('/', indexRouter);
app.use('/users', usersRouter);
// 내가 만든 routes 사용설정
app.use('/book', bookRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

4. models/book.js - entity

  • entity 역할
// 라이브러리 가져오기
// npm i mongoose --save
var mongoose = require('mongoose');
// entity에 해당하는것 만들기
var Schema = mongoose.Schema;

// npm install --save mongoose-sequence
const AutoIncrement = require('mongoose-sequence')(mongoose);

// Schema = entity
// 책코드, 책제목, 가격, 저자, 등록일
var bookSchema = new Schema({
    _id : Number,
    title : {type : String, default : ''},
    price : {type : Number, default : 0},
    author : {type : String, default : ''},
    regdate : {type : Date, default:Date.now}
});

// 시퀀스 사용설정
// '_id'에는 시퀀스를 써서 자동적으로 생성된 데이터가 들어갈 것이다.
bookSchema.plugin(AutoIncrement, {inc_field : '_id'});

// 컬렉션 book8에 bookSchema 형태로 넣겠다.
module.exports = mongoose.model('book8', bookSchema);

5. routes/book.js

POST
import같은걸로 가져온 Book을 사용해서 save 수행

// 127.0.0.1:3000/book/insert
// req : view에서 데이터 전달 => { 'title':'통합구현', 'price':1200, 'author':김형우 }
router.post('/insert', async function(req, res, next) {
    try {
        // var 객체명 = new 클래스명();
        var book = new Book();
        book.title = req.body.title;
        book.price = Number(req.body.price);
        book.author = req.body.author;

        const result = await book.save();
        console.log("result ===>",result);
        
        return res.json({status:200});
    } catch (e) {
        console.error(e);
        return res.json({status:-1});
    }
});

postman

profile
The best

0개의 댓글