module.exports mengembalikan tidak ditentukan apabila membuat pertanyaan dengan mongodb
P粉957661544
P粉957661544 2024-02-26 21:36:14
0
1
373

Saya sedang mencipta modul yang merekodkan item yang dibeli pada MongoDB menggunakan module.exports. Ini adalah kali pertama saya menggunakan modul ini.eksport.

Saya perlu mengembalikan hasil pertanyaan updateOne() kerana saya memerlukan maklumat moddedCount pada main.js. Walau bagaimanapun, keputusan yang dikembalikan tidak ditentukan. Saya membaca bahawa saya harus menggunakan panggilan balik atau janji, janji adalah lebih baik. Bagaimanakah saya boleh melakukan ini dalam kes saya?

Ini adalah kod saya dalam modul recordPurchase.js:

const recordPurchase = (userid, item, price) => {
    db.collection("users").updateOne({ userid: userid }, { $push: { purchases: { item: item, price: price } } })
        .then((result) => {
            if (result.modifiedCount > 0) {
                console.log("Success");
                return result; //return the updateone information
            }
        })
        .catch((err) => {
            console.log("Error recording purchase: " + err)
        })
}

module.exports = recordPurchase;

Beginilah saya memanggilnya di main.js

if (msg.content === "test") {
    const userid = "12345";
    const item = "Some item name";
    const price = 10;
    const result = recordPurchase(userid, item, price)
    console.log(result); //returns updateone/result information
  }

P粉957661544
P粉957661544

membalas semua(1)
P粉805931281

const recordPurchase = (userid, item, price) => {
    return new Promise((resolve, reject) => {
        db.collection("users")
            .updateOne({userid: userid}, {$push: {purchases: {item: item, price: price}}})
            .then((result) => {
                if (result.modifiedCount > 0) {
                    resolve(result) // fulfilled
                } else {
                    reject("error") // rejected
                }
            })
            .catch(reject) // rejected
    })
}

module.exports = recordPurchase;

const recordPurchase = async (userid, item, price) => {
    try{
        const result = await db.collection("users").updateOne({userid: userid}, {$push: {purchases: {item: item, price: price}}})
        if (result.modifiedCount > 0) {
            return result
        }else{
            return new Error('error')
        }
    }catch (err){
        return err
    }
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan