NodeJS 및 MongoDB 연결
12188 단어 nodecodenewbiewebdevmongodb
본고는 당신이 이미 모든 방법의 기본 지식을 습득했다고 가정합니다.여기서 주요 주제는 어떻게 Node와 Mongo가 서로 대화를 할 수 있는지입니다.
1단계: MongoDB 웹 사이트 방문
새 사용자로 로그인하거나 등록해야 합니다.간단한 첫걸음으로 우리는 이미 동력을 얻었다.
2단계: 클러스터 생성 및 연결
사이트에 클러스터가 없는 경우 를 생성해야 합니다.나는 이미 한동안 분류를 하지 않았기 때문에, 나는 확실하지는 않지만, 나는 그것이 자동으로 당신에게 하나를 만들라고 알려줄 것이라고 생각한다.
없으면 걱정하지 마세요. 아래 그림에서 화면 어딘가에 녹색 단추가 있습니다.'새 그룹 만들기'라고 쓰여 있습니다.내 건의는 내가 어떤 설정도 가지고 놀지 않았고, 집단에 비용을 지불하고 싶지 않기 때문에, 기본 설정을 보류하고, 무료 집단을 만드는 것만 확보하면 된다는 것이다.
지금 집단이 있거나, 집단이 있다면, 화면은 위의 그림과 같아야 한다.다음은 그룹 이름 아래의 작은 연결 단추를 눌러야 합니다.그것은 아래에 이 화면을 표시할 것이다.
중간에 있는 옵션을 누르면 응용 프로그램에 연결된다고 쓰여 있습니다.
좋아, 우리는 사이트에서 거의 완성하지 못할 거야.이 연결 팝업 메뉴를 실행하는 첫 번째 단계 - 드라이버를 선택하고 (본문을 읽고 있는 경우 노드일 수 있음) 버전이 적합한지 확인하십시오.우리가 노드 14에 있기 때문에, 나는 너희들이 모두 안전하게 3.6 이상의 버전의 옵션을 선택했다고 가정한다.
그리고 "복제"단추를 누르면 긴 문자열을 복사합니다. 이것이 바로 응용 프로그램이 데이터베이스에 실제로 접근하는 방식입니다.실제 비밀번호로 바꾸기
<password>
, 실제 데이터베이스 이름으로 바꾸기<database>
가 필요합니다.바꾸어야 할 수도 있습니다 <username>
. 그러나 보통 문자열을 복사하기 전에 자동으로 삽입됩니다.3단계: MongoClient 설정
지금 우리는 반드시 당신의 응용 프로그램 코드에 들어가야 합니다.서버 코드가 어디에 있든지 간에 Node와 Mongo 사이의 연결을 만드는 클라이언트가 필요합니다.이것은 나의 프로젝트 디렉터리의 간단한 표시이며, 내가 그 안에 표시할 코드이다.
-client-> (front-end code)
-server
|__db
| |_client.js
| |_index.js
|
|__server.js
|__.env
우선 client.js
를 살펴보자. 왜냐하면 이것은 우리가 연락을 맺어야 할 첫 번째 부분이기 때문이다.import dotenv from 'dotenv';
import { MongoClient } from 'mongodb';
dotenv.config();
const client = new MongoClient(
process.env.MONGODB_URI,
{
useUnifiedTopology: true,
},
);
// Close the connection after the server is shut down
(async () => {
await client.connect();
// 'CTRL + C' -> 'SIGINT' means signal interrupt i.e. server shut down
process.on('SIGINT', () => {
client.close().then(() => {
console.info('SIGINT received: DB connection is closing');
// Avoid plugging up ports - ensures all processes are stopped
process.exit(0);
});
});
})();
export default client;
네, 여기 조금 있습니다. 우리 나누어 봅시다.우선 우리는 수입 상품이 좀 있다.
dotenv
마지막 복사를 저장하기 위한 문자열만 가져와서 사용합니다.저희가 집단에서 몬고의 사이트에서 복사한 긴 문자열은 제 디렉터리 구조에서 보신 .env
에 저장됩니다.dotenv.config()
본문.env
에서 설명한 환경 변수만 사용할 수 있습니다.process.env.MONGODB_URI
우리가 복사한 실제 문자열로 바꿀 수 있습니다.따라서 .env
를 설정하고 싶지 않으면 그럴 필요가 없다.현재
MongoClient
의 도입은 그의 역할에 대해 말하지 않아도 알 수 있다. 이것이 바로 우리가 어떻게 연결을 맺는지이다.const client =
부분은 우리가 새로운 MongoClient
을 성명하고 일부 파라미터를 전달하는 부분이다.useUnifiedTopology: true
import dotenv from 'dotenv';
import { MongoClient } from 'mongodb';
dotenv.config();
const client = new MongoClient(
process.env.MONGODB_URI,
{
useUnifiedTopology: true,
},
);
솔직히 말해서, 나는 왜 우리를 도왔는지 백 퍼센트 이해하는 것이 아니다.이것은Mongo's Reference Page on it입니다.나는 가장 기본적인 의미에서 말하자면, 이것은 미래의 갱신을 더욱 쉽게 내딛는 한 걸음인 것 같다.근데 내가 완전히 틀렸나봐.댓글로
useUnifiedTopology: true
에 대한 이해를 알려주세요!네, 다음 코드입니다.
분명히 우리는 우리가 만든
useUnifiedTopology
을 내보냈기 때문에 이 점을 한쪽에 두자.현재 이 코드의 대부분은 비동기 iLife이다.그것의 목적은 연결을 만들고 서버가 닫힐 때 이 연결을 닫는 것이다.그중의 평론은 이미 일부 부분을 밝히는 데 도움이 될 것이다.
client
에서 사용할 수 있는 방법으로 연결을 기다립니다.간단해.connect()
를 얻으면 데이터베이스 연결을 닫습니다.우리 부모님이 청소를 가르쳐 주셨기 때문에, 이것은 단지 우리 방을 위한 것이 아니다.// Close the connection after the server is shut down
(async () => {
await client.connect();
// 'CTRL + C' -> 'SIGINT' means signal interrupt i.e. server shut down
process.on('SIGINT', () => {
client.close().then(() => {
console.info('SIGINT received: DB connection is closing');
// Avoid plugging up ports - ensures all processes are stopped
process.exit(0);
});
});
})();
export default client;
4단계: 당신의 신호를 사용합니다
지금 우리는 어떻게 이것
client
을 사용하여 우리를 연결합니까?이것은 나의 client
중의 한 방법이다.import client from './client';
// GOOD
export const addNewUser = async (newUser) => {
try {
return await client.db('throwaway').collection('users').insertOne(newUser);
} catch (err) {
throw new Error(err);
}
};
db/index.js
client
.db(<NAME OF YOUR DATABASE>)
.collection(<NAME OF YOUR COLLECTION>)
.<METHOD YOU NEED>
클라이언트에서 요청한 대상입니다.그것은 이미 하나의 대상이기 때문에, 나는 직접 그것을 newUser
방법에 전달할 수 있다.계속 전진하다
제 경험에 의하면 MongoDB는 사물의 격식에 대해 매우 까다롭다. 특히 CRUD에 전달하는 방법, 예를 들어
insertOne
, insertOne()
.이것은 읽기, 쓰기, 삭제, 업데이트를 시도하는 데이터의 작업이 정확한지 확인하는 데 매우 중요하다.
연습
데이터가 필요한 항목을 제시하는 것도 걱정하지 말고 이 데이터가 어떤 모습일지 걱정하지 마세요. 몬고DB의 샘플 데이터만 사용하세요.
집단을 만들면 기본적으로 샘플 집합을 다운로드할 수 있다.
이렇게 하면 색인처럼 프로젝트 구조를 신속하게 구축할 수 있다.html, 기본 CSS와 본고에서 보신 서버 사이드 코드입니다.어떻게 데이터를 정확하게 전달하고 클라이언트 요청을 서버에 전달하는지, 심지어 서버 코드에 하나
find(0)
를 정의하여 DB 방법에 전달하고 업데이트하는지 확인하기만 하면 된다.임무를 완수하는 시간이 대부분의 일보다 더 도움이 된다!
Reference
이 문제에 관하여(NodeJS 및 MongoDB 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/stlnick/connect-nodejs-and-mongodb-3jjc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)