password์ ํน์๋ฌธ์๊ฐ ์์ ๊ฒฝ์ฐ url ์ธ์ฝ๋ฉ์ ํด์ผ ํ๋ ์๋ ํ์ด์ง์์ url ์ธ์ฝ๋ฉ์ ํด์ฃผ์ธ์.
- ํ๋ก์ ํธ ๊ณจ๊ฒฉ
// npm init --yes // npm i express nunjucks mongoose // npm i nodemon --save-dev const express = require('express'); const mongoose = require('mongoose'); // ์ง๊ธ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. // const path = require('path'); // const morgan = require('morgan'); // const nunjucks = require('nunjucks'); const app = express(); app.use(express.json()); ////// // mongodb://[id:pw]localhost:27017/[project]์ ํํ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์์ด๋ ํจ์ค์๋๋ฅผ ๋ง๋ค์ด์ค ์ ์ด ์์ผ๋ฏ๋ก ์ ์ง ์์๋ ๋ฉ๋๋ค. project๋ ๋ค์์ ์ธ๊ธํฉ๋๋ค. // ๋ค๋ฅธ ํ์ผ๋ก ๋ง๋ค์ด์ ์ด ๋ถ๋ถ์ ๋ชจ๋๋ก exportํด์ผํฉ๋๋ค. ํ๋ฆ๋ง ๋ด์ฃผ์ธ์. mongoose.connect('mongodb://localhost:27017/test125'); // 2. ์ฐ๊ฒฐ DB ์ฌ์ฉ const db = mongoose.connection; // 3. ์ฐ๊ฒฐ ์คํจ db.on('error', function(){ console.log('์ฐ๊ฒฐ ์คํจ'); }); // 4. ์ฐ๊ฒฐ ์ฑ๊ณต db.once('open', function() { console.log('์ฐ๊ฒฐ ์ฑ๊ณต'); }); //// app.get('/', (req, res, next) => { res.writeHead(200); res.end('hello db!'); }); app.use((req, res, next) => { res.status(404).send('๋ชป์ฐพ์!'); }); app.listen(8080);
ย
- CRUD
const mongoose = require('mongoose'); // 1. DB์ธํ , url๋ค์ project ์ฃผ์๋ก ์๋ ์์ฑ๋จ // mongodb://[id:pw]localhost:27017/[project]์ ํํ mongoose.connect('mongodb://localhost:27017/test125'); // 2. ์ฐ๊ฒฐ DB ์ฌ์ฉ const db = mongoose.connection; // 3. ์ฐ๊ฒฐ ์คํจ db.on('error', function(){ console.log('์ฐ๊ฒฐ ์คํจ'); }); // 4. ์ฐ๊ฒฐ ์ฑ๊ณต db.once('open', function() { console.log('์ฐ๊ฒฐ ์ฑ๊ณต'); }); // 5. Schema(์ ๋ ฅ ๋ฐ์ดํฐ ํ๋์ ๋ฐ์ดํฐ ํ์ ) // type์ String, Number, Date, Buffer, Boolean, Mixed, ObjectedId, Array const user_info = mongoose.Schema({ // ์๋์ ๊ฐ์ด ๊ฐ๋จํ๊ฒ ์์ฑ ๊ฐ๋ฅ // name : 'string', // age : 'number' userid: { type: String, required: true }, // unique: true๋ false๋ฅผ ์ค ์ ์์ต๋๋ค. name: { type: String, required: true }, age: { type: Number, required: true }, gender: { type: String, required: true }, area: { type: String, required: false }, point: { type: Number } }); // 6. ์ ์๋ ์คํค๋ง๋ฅผ ์ปดํ์ผ(๊ฐ์ฒด์ฒ๋ผ ์ฌ์ฉํ๊ธฐ ์ํด model() ํจ์๋ก ์ปดํ์ผ) const User = mongoose.model('Schema', user_info); // 7. newUser์ ๊ฐ ์ ๋ ฅ! const newUser = new User({ userid : 'licat', name : 'Hojun.lee', age : 10, gender : '๋จ', area : 'jeju', point : 1000000, }); // 8. ๋ฐ์ดํฐ ์ ์ฅ newUser.save(function(error, data){ if(error){ console.log(error); }else{ console.log('์ ์ฅ์๋ฃ!') } }); // 9. User ๋ ํผ๋ฐ์ค ์ ์ฒด ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ User.find(function(error, users){ console.log('-- ์ ์ฒด ๋ฐ์ดํฐ ์ฝ๊ธฐ ์์ --'); if (error) { console.log(error); } else { console.log(users); } console.log('-- ์ ์ฒด ๋ฐ์ดํฐ ์ฝ๊ธฐ ๋ --'); });
ย
ย
const mongoose = require('mongoose'); // 1. DB์ธํ , url๋ค์ project ์ฃผ์๋ก ์๋ ์์ฑ๋จ // mongodb://[id:pw]localhost:27017/[project]์ ํํ mongoose.connect('mongodb://localhost:27017/test125'); // 2. ์ฐ๊ฒฐ DB ์ฌ์ฉ const db = mongoose.connection; // 3. ์ฐ๊ฒฐ ์คํจ db.on('error', function(){ console.log('์ฐ๊ฒฐ ์คํจ'); }); // 4. ์ฐ๊ฒฐ ์ฑ๊ณต db.once('open', function() { console.log('์ฐ๊ฒฐ ์ฑ๊ณต'); }); // 5. Schema(์ ๋ ฅ ๋ฐ์ดํฐ ํ๋์ ๋ฐ์ดํฐ ํ์ ) // type์ String, Number, Date, Buffer, Boolean, Mixed, ObjectedId, Array const user_info = mongoose.Schema({ // ์๋์ ๊ฐ์ด ๊ฐ๋จํ๊ฒ ์์ฑ ๊ฐ๋ฅ - 1 // name : 'string', // age : 'number' // ์๋์ ๊ฐ์ด ๊ฐํํด์ ์ฌ์ฉํ๋ ๊ฒ๋ ๊ฐ๋ฅ - 2 userid: { type: String, required: true, // unique: true }, name: { type: String, required: true, // unique: false }, age: { type: Number, required: true }, gender: { type: String, required: true }, area: { type: String, required: false }, point: { type: Number, } }); // 6. ์ ์๋ ์คํค๋ง๋ฅผ ์ปดํ์ผ(๊ฐ์ฒด์ฒ๋ผ ์ฌ์ฉํ๊ธฐ ์ํด model() ํจ์๋ก ์ปดํ์ผ) const User = mongoose.model('Schema', user_info); // 7. newUser์ ๊ฐ ์ ๋ ฅ! const newUser = new User({ userid : 'licat', name : 'Hojun.lee', age : 10, gender : '๋จ', area : 'jeju', point : 1000000, }); // 2๋ฒ ํ์ผ ์ํ ํ // 2.1. ์ง์ ๋ ๊ฐ ์ฝ๊ธฐ User.find({}, {_id:1, userid:1, gender:1}, function(error, user){ console.log('-- ์ง์ ๋ ๊ฐ ๋ฐ์ดํฐ ์ฝ๊ธฐ ์์ --'); if (error) { console.log(error); } else { console.log(user); } console.log('-- ์ง์ ๋ ๊ฐ ๋ฐ์ดํฐ ์ฝ๊ธฐ ๋ --'); }); // 2.2 1๊ฐ ๋ฐ์ดํฐ ์ฝ๊ธฐ User.findOne({userid : 'licat'}, function(error, user){ console.log('-- user 1๊ฐ ๋ฐ์ดํฐ ์ฝ๊ธฐ ์์ --'); if (error) { console.log(error); } else { console.log(user); } console.log('-- user 1๊ฐ ๋ฐ์ดํฐ ์ฝ๊ธฐ ๋ --'); }); // 2.3 ๋ฐ์ดํฐ ์์ ํ๊ธฐ User.findById({_id:'61cc1f0e8c6318267edb0e1d'}, function(error, user){ console.log('-- user 1๊ฐ ๋ฐ์ดํฐ ์์ ์์ --'); if (error) { console.log(error); } else { user.name = 'Gildong.hong'; user.save(function(error, modified_user){ if(error){ console.log(error); } else { console.log(modified_user); } }); } console.log('-- user 1๊ฐ ๋ฐ์ดํฐ ์์ ๋ --'); }); // 2.3 user๋ ์ญ์ ํ์ง ์์ต๋๋ค. ์ญ์ ํ๋๋ฅผ ํ๋ ๋ ๋ง๋ค์ด์ ๋ณด๊ดํ์ธ์. // User.remove({_id:'61cc1f0e8c6318267edb0e1d'}, function(error, output){ // console.log('-- ์ญ์ --'); // if(error){ // console.log(error); // } // });
ย