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

时间:2020-03-27 16:14:33

标签: javascript node.js mongodb dom

我的数据库(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文件中,我希望该函数从DB获取数据并做我想做的任何事情。

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

1 个答案:

答案 0 :(得分:1)

您需要使用参数进行渲染。

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

在前端(视图):

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

您可以从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);
    });
});

您可以在前端使用jQuery获取数据。

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