我的数据库(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
}
答案 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
}