CMD> npm i express-generator -g
CMD> npm i nodemon -g
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/
CMD> npm install --save mongoose
CMD> npm install --save mongoose-sequence
CMD> npm i --save socket.io
: 실시간 처리
1-1. 첫화면 변경
: models
2-1. routes가 controller에 해당
2-2. models에 entity 만듦
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;
// 라이브러리 가져오기
// 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);
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