Nathan
55
2022-06-10 12:04:25
2
97

MERN Runtime Error 질문 드립니다.


안녕하세요


MERN 공부중인데, DB에 insert 할 시에 런타임 에러가 계속 떠서 알아본 결과 DB close하는 부분에서 너무 빨리 닫힌다는걸 알아냈고, setTimeout으로 클로즈 시간을 좀 늦췄습니다. 그 이후 정상 작동 되는데, 이 방법이 원래 맞는방법은 아닌것 같아서 질문드립니다.

MongoDB guide, 다른 예제들을 전부 봐도 setTimeout으로 클로즈 시간을 늦추는 경우는 못찾겠어서 질문드립니다.


const { MongoClient } = require("mongodb");

const url =
    "mongodb+srv://USERNAME:PASSWORD@cluster0.feify.mongodb.net/products_test?retryWrites=true&w=majority";

const createProduct = async (req, res, next) => {
    const newProduct = {
        name: req.body.name,
        price: req.body.price,
    };
    const client = new MongoClient(url);

    try {
        await client.connect();
        const db = client.db();
        const result = db.collection("products").insertOne(newProduct);
    } catch (error) {
        return res.json({ message: "Could not store data." });
    }
    setTimeout(() => {
        client.close();
    }, 1500);
    res.json(newProduct);
};

const getProducts = async (req, res, next) => {};

exports.createProduct = createProduct;
exports.getProducts = getProducts;

0
  • 답변 2

  • ISA
    6k
    2022-06-10 12:31:14

    Await 쓰세요..

  • Nathan
    55
    2022-06-10 12:44:26

    네 답변 감사합니다.

    다른 예제에서도 Await 또는 setTimeout을 추가한 부분이 없어서 혹시 다른부분을 잘못한건지 했었습니다.

    Await로 해결했습니다. 감사합니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.