MongoDB => Ajax 바로 접속해서 데이터 가져오면 위험
db.js => express => 가상 통신 서버를 구축
Front-end => Ajax => express서버 => MongoDB => return
Front-end => 로컬호스트
express => GCP
[서버 접속]
sudo -s
su cms
cd /home/cms/www
npm install express
npm install cors
[GCP 방화벽 규칙 추가]
express를 위해 방화벽 규칙 추가해야함
기본 3000포트는 해커들이 너무잘알아
다른거로 한번써보댱


만들기~
[몽고]
use cms
db.createCollection('members',{
capped:true,
size:1000,
max:10
})
db.members.insertOne({"userid":"hong","username":"홍길동"})
[서버]
cd /home/cms/www
node db.js
몽고연결하던 파일 실행하면 전과 다르게 Auth에러 남
왜? 계속 몽고 털려서 보안을 추가했더니 나도 들어갈때 나라는것을 알려줘야함
use admin
db.auth("your_admin_user", "your_admin_password") // 관리자 계정으로 인증
db.grantRolesToUser(
"master", [ { role: "userAdmin", db: "cms" }
// cms 데이터베이스에 대한 userAdmin 역할 부여 ] )
뭐지 admin디비에 만들어둔 master라는 사용자에게 권한을 줬따
근데 이케하는게 아니야
사용자를 다시 만들자
admin디비에!
[몽고]
use admin
데이터베이스 선택
db.auth("master","비번");
최고관리자로 로그인
db.createUser({
user:"koo",
pwd:"비번",
roles:[
{role:"readWrite",db:"cms"}]
});
사용자 생성
이러케하고
[js]
//해당 node서버에서 라이브러리를 호출
const { MongoClient } = require('mongodb');
//사용자 접속 정보
var userid = encodeURIComponent('koo');
var userpw = encodeURIComponent('비번');
var host = "아이피:27017";
var dbnm = "cms";
//mongodb 접속 경로 및 데이터베이스명
const uri=`mongodb://${userid}:${userpw}@${host}/${dbnm}?authSource=admin`;
var client = new MongoClient(uri); //접속체크
var db = null;
async function abc(){
try{
await client.connect(); //연결 응답 대기 상황
console.log("MongoDB connect success!");
db = client.db(dbnm); //DB연결 정보 및 컬렉션 연결 준비
var collection = db.collection('members'); //컬렉션 이름
var query = await collection.find({}).toArray();
console.log("멤버 리스트 : ", query);
}catch(error){
console.log(error);
}finally{
await client.close();
}
}
abc(); //해당 데이터베이스를 연결하는 함수를 호출
이렇게 수정해서
[서버]
node db.js
하면!!!!

잘뜬다!!!!!!야후
근데 js로 연결하는거는 안좋다고 함
이거슨 응답을 받고있다는것.
