Saya memiliki data di database saya (MongoDB) dan saya menemukan data dari DB dan menyimpannya ke array. Dan ketika tombol diklik pada halaman saya ingin mengirim data itu ke file JavaScript saya dan menggunakan DOM tampilkan di halaman.

Saya menemukan data dari DB saat halaman dimuat:

app.get('/', function(req, res) {
    var ipsumTextArray = [];
    Ipsum.find({}, function(err, allIpsumTexts) {
        if (err) {
            console.log(err);
        } else {
            allIpsumTexts.forEach(function(ipsum) {
                ipsumTextArray.push(ipsum.text);
            });
        }
        res.render('home');
    });
});

Dan di file JavaScript saya yang lain, saya ingin fungsi ini mendapatkan data dari DB dan melakukan apa pun yang saya inginkan.

function randomIpsum(text) {
    text.value = 'text from database'; // text is textarea where I want to show text
}
-1
Tony 27 Maret 2020, 19:14

1 menjawab

Jawaban Terbaik

Anda perlu merender dengan parameter.

app.get('/', function(req, res) {
    var ipsumTextArray = [];
    Ipsum.find({}, function(err, allIpsumTexts) {
        if (err) {
            console.log(err);
        } else {
            allIpsumTexts.forEach(function(ipsum) {
                ipsumTextArray.push(ipsum.text);
            });
        }
        res.render('home', { arr: ipsumTextArray });
    });
});

Di bagian depan (tampilan):

var arr= {{ arr }}

function randomIpsum(text) {
    //text.value = 'text from database'; // text is textarea where I want to show text
    text.value = arr[0]
}

ATAU

Anda dapat mengirim teks biasa dari nodejs Anda.

app.get('/', function(req, res) {
    var ipsumTextArray = [];
    Ipsum.find({}, function(err, allIpsumTexts) {
        if (err) {
            console.log(err);
        } else {
            allIpsumTexts.forEach(function(ipsum) {
                ipsumTextArray.push(ipsum.text);
            });
        }
        res.send(ipsumTextArray);
    });
});

Anda bisa mendapatkan data menggunakan jQuery di front-end.

<button id="btn">Get Data</button>

$("#btn").on("click", function(){
    $.get("/", function(data){
        randomIpsum(text, data)
    })
})

function randomIpsum(text, data) {
    //text.value = 'text from database'; // text is textarea where I want to show text
    text.value = data
}
1
Dashzeveg Galbadrakh 27 Maret 2020, 16:39