ํฐ์คํ ๋ฆฌ ๋ทฐ
๊ฒ์ํ์ ๊ธ์ ์ฐ๋ ์์ ๋ ์ด์ด์ ์งํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ฒ์๊ธ์ ์ด๋ค๋ ๊ฒ์ DB์ ๋ด๊ฐ ์ด ๊ฒ์๊ธ์ ๋ด์ฉ์ด ์ ์ฅ๋๋ค๋ ๋ป ์ด๊ฒ ์ฃ ? ์ผ๋จ ๊ฐ๋จํ ๊ธ ์ฐ๊ธฐ ํ์ด์ง ํผ์ ์์ฑํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
views/write.pug
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | link(rel='stylesheet', href='css/bootstrap.css') link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/css/bootstrap-select.min.css') ons-page ons-toolbar div(style='text-align: center; margin-top:3%;') section(style='padding: 8px') textarea.text-input#subject(type='text', ng-model='text', placeholder='์ ๋ชฉ', style='width: 80%; height:30px;') section(style='padding: 0 8px 8px') textarea.textarea#content(ng-model='text2', placeholder='๋ด์ฉ', style='width: 80%; height: 400px;') section(style='padding: 0 8px 8px') button(type="button" class='btn btn-primary' onclick='submitFunction()') Submit script. var subject = document.getElementById('subject'); var content = document.getElementById('content'); var url = 'http://localhost:3000/write_receive'; function submitFunction() { var data = {'subject':subject.value, 'content':content.value}; data = JSON.stringify(data); var xhr = new XMLHttpRequest(); xhr.open('POST',url,true); xhr.setRequestHeader('Content-type','application/json'); xhr.send(data); xhr.addEventListener('load',function(){ var result = JSON.parse(xhr.responseText); if(result.result=='ok'){ alert('์์ฑ์๋ฃ') location.replace('http://localhost:3000/commuity') } }) } | cs |
์ด ๋ถ๋ถ์์๋ ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ client ๋จ์์ server ์ชฝ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ POST ํต์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์
post ๋ผ์ฐํฐ๋ ๊ฐ์ด ์์ฑํด์ฃผ์ด์ผ ํฉ๋๋ค.
routes/write.js
1 2 3 4 5 6 7 8 9 10 11 12 | let express = require('express') let router = express.Router() let app = express(); let path = require('path') app.set('views',path.join(__dirname,'views')); app.set('view engine','pug') router.get('/',function(req,res){ res.render('write') }) module.exports = router; | cs |
routes/write_receive.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | let express = require('express') let router = express.Router() let app = express(); let path = require('path') let board = require('../function/board') let session = require('express-session') app.set('views',path.join(__dirname,'views')); app.set('view engine','pug') app.use(session({ secret:'123123123', resave:false, saveUninitialize:true })); router.post('/',function(req,res){ board.boardWriteFunction(req.body.subject,req.body.content,req.session.idx,function(result){ res.json(result) }) }) module.exports = router; | cs |
์ด์ ๊ณผ๋ ๋ค๋ฅด๊ฒ POST ๋ฐฉ์์ ์์ฑํฉ๋๋ค.
app.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | const createError = require('http-errors'); const express = require('express'); const path = require('path'); const cookieParser = require('cookie-parser'); const bodyParser = require('body-parser'); const session = require('express-session') const passport = require('passport') const sequelize = require('sequelize') const models = require('./models') const app = express(); //app.get const indexRouter = require('./routes/index'); const commuityRouter = require('./routes/commuity') const writeRouter = require('./routes/write'); //app.post const writeReceiveRouter = require('./routes/write_receive'); //sequelize models.sequelize.sync() .then(function() { console.log('โ DB connection success.'); console.log(' Press CTRL-C to stop\n'); }) .catch(function(err) { console.error(err); console.log('โ DB connection error. Please make sure DB is running.'); process.exit(); }); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'pug'); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(bodyParser.urlencoded({extended: false})); app.use(bodyParser.json()); app.use(cookieParser()) app.use(session({ secret:'123123123', resave:false, saveUninitialize:true })); app.use(express.static(__dirname)); //get app.use('/', indexRouter); app.use('/commuity',commuityRouter); app.use('/write',writeRouter); //post app.use('/write_receive',writeReceiveRouter); // 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; | cs |
์ฌ๋งํ๋ฉด commuity ํ์ด์ง์ ๊ธ์ฐ๊ธฐ ๋ฒํผ์ ๋ง๋ค์ด์ ๊ธ์ฐ๊ธฐ ํ์ด์ง๋ก ๋์ด๊ฐ๋ฉด ์ข๊ฒ ์ง๋ง ์ฝ๋๊ฐ ์ข ๋ง์ด ๋ณํ๋์ด๋ฒ๋ ค์ ์ฃผ์๋ฅผ ์ง์ ํ์ดํํ์ฌ ๊ธ์ฐ๊ธฐ ํ์ด์ง๋ก ์ ๊ทผํ๊ฒ ์ต๋๋ค.
์ผ๋จ ์คํ์ ํ ํ localhost:3000/write ๋ก ์ ๊ทผํ๋ฉด ์ด๋ฐ ํ์ด์ง๊ฐ ๋์ฌ ๊ฒ์ ๋๋ค.
submit ๋ฒํผ์ ๋๋ฅด๊ฒ ๋๋ฉด routes/write_receive.js ํ์ผ๋ก ๊ฐ๊ฒ ๋ฉ๋๋ค. ํด๋น ํ ์คํธ๋ฐ์ค์ ์์ฑํ ๋ด์ฉ์ post ๋ผ์ฐํฐ์ ๋๊ฒจ์ฃผ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ผ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ DB ์ฒ๋ฆฌ๋ฅผ ํ๋ ํจ์ boardWriteFunction ์ ์์ฑํด์ค๋๋ค.
๊ธฐ์กด์ ๊ฒ์๊ธ์ ๋ก๋ํ๋ ํจ์์ ์ด์ด์ ์์ฑํ๊ฒ ์ต๋๋ค.
function/board.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | let models = require('../models'); function boardWriteFunction(subject,content,fk_userId,callback){ let responseData = {'result':'ok'} models.Board.create({ subject:subject, content:content, fk_userId: fk_userId, }).then(function(result){ callback(responseData) }).catch(function(err){ console.log(err) }) } exports.boardWriteFunction = boardWriteFunction; | cs |
์ ๋ชฉ๊ณผ ๋ด์ฉ์ DB์ ์ ์ฅํด์ค ํ์ ํด๋น ํจ์๋ฅผ ํธ์ถํ๋ router์ responseData๋ฅผ ๋๊ฒจ์ค๋๋ค. Ajax๋ฅผ ์ฌ์ฉํ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ๋ฌด์ฌํ ๋์๋ค๋ ์ฌ์ธ์ ๋ณด๋ธ๋ค๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
๋ฌด์ฌํ ์ ์ก์ด ๋๋ค๋ฉด ์ด๋ ๊ฒ alert ์ฐฝ์ด ๋จ๊ฒ ๋๊ณ commuity ํ์ด์ง๋ฅผ ๋ก๋ํด์ฃผ๋ฉด ํด๋น ๋ด์ฉ์ด ์ถ๊ฐ๋ฉ๋๋ค.
'Node.js > ๊ฒ์ํ ๋ง๋ค๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DB์ ์๋ ๋ฐ์ดํฐ ๊ฒ์ํ ํ์ด์ง๋ก ๋๊ธฐ๊ธฐ (3) | 2018.11.12 |
---|---|
๊ฒ์ํ DB ์ ํ ํ๊ธฐ (Sequelize ์ฌ์ฉ) (1) | 2018.11.09 |
Node.js๋ก ๊ฒ์ํ ๋ง๋ค๊ธฐ [์์] (0) | 2018.11.05 |
- Total
- Today
- Yesterday
- nestjs project
- android
- Spring
- node.js backend
- node.js
- sequelize
- Spring Async
- typeorm
- JavaScript
- ๋น๋๊ธฐ ์์ฒญ
- nestjs directory
- nestjs configService
- ๊ธฐ์์ฒญAPI
- NestJS
- ์๊ณ ๋ฆฌ์ฆ
- nestjs typeorm
- Promise bulk
- docker mysql
- ํ๋ก๊ทธ๋๋จธ์ค
- Promise error
- nestjs module
- nestjs config
- foreignkey
- nestjs/cli
- Request_Limit_Exceeded
- nestjs doc
- DeferredResult
- backend-framework
- typeorm ์ฐ๊ฒฐ
- @nestjs/config
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |