node.js - Passing data from backend (nodejs) to frontend javascript - Stack Overflow

I have data in my database (MongoDB) and I am finding data from DB and saving it to array. And when but

I have data in my database (MongoDB) and I am finding data from DB and saving it to array. And when button is clicked on page I want to send that data to my JavaScript file and using DOM show it on page.

I am finding data form DB when page loads:

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');
    });
});

And in my other JavaScript file I want this function to get data from DB and do whatever I want.

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

I have data in my database (MongoDB) and I am finding data from DB and saving it to array. And when button is clicked on page I want to send that data to my JavaScript file and using DOM show it on page.

I am finding data form DB when page loads:

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');
    });
});

And in my other JavaScript file I want this function to get data from DB and do whatever I want.

function randomIpsum(text) {
    text.value = 'text from database'; // text is textarea where I want to show text
}
Share Improve this question edited Mar 27, 2020 at 16:15 jonrsharpe 122k30 gold badges268 silver badges476 bronze badges asked Mar 27, 2020 at 16:14 TheRockTheRock 971 gold badge3 silver badges13 bronze badges 1
  • You don't seem to be using the data when you render the home page. Is this a server-rendered or single-page application, even? Are you expecting the client to make requests (where are those requests) or the server to build the whole page (why not use the data)? – jonrsharpe Commented Mar 27, 2020 at 16:17
Add a ment  | 

1 Answer 1

Reset to default 2

You need to render with a 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 });
    });
});

In the front-end (view):

var arr= {{ arr }}

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

OR

You can send a plain text from your nodejs.

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);
    });
});

You can get the data using jQuery in the 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
}

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745240170a4618133.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信