Передача данных из бэкэнда (nodejs) во внешний интерфейс javascript - PullRequest
0 голосов
/ 27 марта 2020

У меня есть данные в моей базе данных (MongoDB), и я нахожу данные из БД и сохраняю их в массив. И когда кнопка нажата на странице, я хочу отправить эти данные в мой JavaScript файл и с помощью DOM показать их на странице.

Я нахожу данные из БД при загрузке страницы:

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
}

1 Ответ

1 голос
/ 27 марта 2020

Необходимо выполнить рендеринг с параметром.

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

ИЛИ

Вы можете отправить обычный текст с вашего 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...