猿问

将数据从后端(nodejs)传递到前端javascript

我的数据库(MongoDB)中有数据,我正在从数据库中查找数据并将其保存到数组中。当在页面上单击按钮时,我想将该数据发送到我的 JavaScript 文件并使用 DOM 在页面上显示它。


页面加载时,我正在从 DB 中找到数据:


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

    });

});

在我的另一个 JavaScript 文件中,我希望这个函数从数据库中获取数据并做任何我想做的事情。


function randomIpsum(text) {

    text.value = 'text from database'; // text is textarea where I want to show text

}


一只甜甜圈
浏览 952回答 1
1回答

不负相思意

您需要使用参数进行渲染。app.get('/', function(req, res) {&nbsp; &nbsp; var ipsumTextArray = [];&nbsp; &nbsp; Ipsum.find({}, function(err, allIpsumTexts) {&nbsp; &nbsp; &nbsp; &nbsp; if (err) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(err);&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; allIpsumTexts.forEach(function(ipsum) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ipsumTextArray.push(ipsum.text);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; res.render('home', { arr: ipsumTextArray });&nbsp; &nbsp; });});在前端(视图):var arr= {{ arr }}function randomIpsum(text) {&nbsp; &nbsp; //text.value = 'text from database'; // text is textarea where I want to show text&nbsp; &nbsp; text.value = arr[0]}或者您可以从 nodejs 发送纯文本。app.get('/', function(req, res) {&nbsp; &nbsp; var ipsumTextArray = [];&nbsp; &nbsp; Ipsum.find({}, function(err, allIpsumTexts) {&nbsp; &nbsp; &nbsp; &nbsp; if (err) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(err);&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; allIpsumTexts.forEach(function(ipsum) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ipsumTextArray.push(ipsum.text);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; res.send(ipsumTextArray);&nbsp; &nbsp; });});您可以在前端使用 jQuery 获取数据。<button id="btn">Get Data</button>$("#btn").on("click", function(){&nbsp; &nbsp; $.get("/", function(data){&nbsp; &nbsp; &nbsp; &nbsp; randomIpsum(text, data)&nbsp; &nbsp; })})function randomIpsum(text, data) {&nbsp; &nbsp; //text.value = 'text from database'; // text is textarea where I want to show text&nbsp; &nbsp; text.value = data}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答