Node.js 기본 사항 — MongoDB 약속 및 콜백
4858 단어 programmingjavascriptwebdevnode
지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.
Node.js는 실행되는 프로그램을 만드는 인기 있는 런타임 플랫폼입니다.
브라우저 외부에서 JavaScript를 실행할 수 있습니다.
이 기사에서는 Node.js를 사용하여 프로그램을 만드는 방법을 살펴보겠습니다.
약속과 콜백
MongoDB 클라이언트에는 약속을 반환하는 메서드가 있습니다.
결과가 나오기 전에 상태가 보류 상태일 수 있는 비동기 코드입니다.
결과가 나오면 작업이 성공적으로 완료되면 수행될 수 있습니다.
그렇지 않으면 거부된 상태가 됩니다.
예를 들어
updateOne
메서드는 약속을 반환합니다.다음과 같이 작성하여 사용할 수 있습니다.
const { MongoClient } = require('mongodb');
const connection = "mongodb://localhost:27017";
const client = new MongoClient(connection);
async function run() {
try {
await client.connect();
const testCollection = await client.db("test").collection('test');
await testCollection.deleteMany({})
const result = await testCollection.insertMany([
{ "_id": 1, "name": "apples", "qty": 5, "rating": 3 },
{ "_id": 2, "name": "bananas", "qty": 7, "rating": 1 },
{ "_id": 3, "name": "oranges", "qty": 6, "rating": 2 },
{ "_id": 4, "name": "avocados", "qty": 3, "rating": 5 },
]);
console.log(result)
const updateResult = await testCollection
.updateOne({ name: "apple" }, { $set: { qty: 100 } })
console.log(updateResult);
} finally {
await client.close();
}
}
run().catch(console.dir);
updateOne
를 await
키워드로 호출하여 일단 확인된 값을 얻을 수 있도록 합니다.updateOne
는 약속을 반환하므로 await
키워드를 사용할 수 있습니다.오류를 잡으려면 다음과 같이 작성할 수 있습니다.
const { MongoClient } = require('mongodb');
const connection = "mongodb://localhost:27017";
const client = new MongoClient(connection);
async function run() {
try {
await client.connect();
const testCollection = await client.db("test").collection('test');
await testCollection.deleteMany({})
const result = await testCollection.insertMany([
{ "_id": 1, "name": "apples", "qty": 5, "rating": 3 },
{ "_id": 2, "name": "bananas", "qty": 7, "rating": 1 },
{ "_id": 3, "name": "oranges", "qty": 6, "rating": 2 },
{ "_id": 4, "name": "avocados", "qty": 3, "rating": 5 },
]);
console.log(result)
try {
const updateResult = await testCollection
.updateOne({ name: "apple" }, { $set: { qty: 100 } })
console.log(updateResult);
} catch (error) {
console.log(`Updated ${res.result.n} documents`)
}
} finally {
await client.close();
}
}
run().catch(console.dir);
거부된 약속에서 발생한 오류를 기록하기 위해
catch
블록을 추가합니다.콜백
콜백을 사용하여 작업 결과를 얻을 수도 있습니다.
예를 들어 다음과 같이 작성할 수 있습니다.
const { MongoClient } = require('mongodb');
const connection = "mongodb://localhost:27017";
const client = new MongoClient(connection);
async function run() {
try {
await client.connect();
const testCollection = await client.db("test").collection('test');
await testCollection.deleteMany({})
const result = await testCollection.insertMany([
{ "_id": 1, "name": "apples", "qty": 5, "rating": 3 },
{ "_id": 2, "name": "bananas", "qty": 7, "rating": 1 },
{ "_id": 3, "name": "oranges", "qty": 6, "rating": 2 },
{ "_id": 4, "name": "avocados", "qty": 3, "rating": 5 },
]);
console.log(result)
testCollection
.updateOne({ name: "apple" }, { $set: { qty: 100 } }, (error, result) => {
if (!error) {
console.log(`Operation completed successfully`);
} else {
console.log(`An error occurred: ${error}`);
}
})
} finally {
await client.close();
}
}
run().catch(console.dir);
세 번째 인수에서 콜백으로
updateOne
를 호출합니다.이렇게 하면 약속을 반환하는 대신 콜백으로 비동기 결과를 얻을 수 있습니다.
결론
MongoDB 클라이언트는 약속을 반환하거나 콜백을 사용하여 비동기 작업에서 결과를 얻을 수 있습니다.
Reference
이 문제에 관하여(Node.js 기본 사항 — MongoDB 약속 및 콜백), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aumayeung/node-js-basics-mongodb-promises-and-callbacks-5e48텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)