每当加载特定页面时,我都会在名为database.js的文件中定义一个函数。关联的页面是loginpage.ejs,该页面以空白表格元素开头。
在database.js的此函数中,我以循环方式从DynamoDB检索值,并使用JSON解析函数解析每个条目。
这是功能。
var get_restaurants = function(route_callbck){
var AWS = require('aws-sdk');
AWS.config.loadFromPath('./config.json');
var async = require('async');
var docClient = new AWS.DynamoDB.DocumentClient();
var params = {
TableName: "restaurants"
};
var count = 0;
docClient.scan(params).eachPage((err, data, done) => {
if (data != null) {
for (let index = 0; index < data.Items.length; index++) {
const element = data.Items[index];
var str = JSON.stringify(element);
var x = JSON.parse(str);
//var x is the whole item- how do I put this in a table?
console.log(x);
}
}
done();
});
};
我有一个ejs文件,其表定义如下所示。 loginpage.ejs
<table name="restaurants"></table>
所以console.log打印每个项目...但是我想将每个项目添加到ejs文件中名为restaurant的表中。现在,我只想将整个字符串添加到表中,以便在迭代时为每个项目添加一个条目。我可以弄清楚以后再剖析JSON。 我不确定如何将该函数放置在ejs文件中并在加载时调用它,或者是否可以相同的方式工作?任何帮助将不胜感激!
答案 0 :(得分:0)
也许,var x = [{no:1,title:'hh',date:'2018-11-2'..},{..etc}]。对吧?
获取数据后
以防万一,
$("#restaurants").append(`<tr>
<td>no</td>
<td>title</td>
<td>date</td>
</tr>`)
for(let i = 0; i<x.length; i++){
$("#restaurants").append(`<tr>
<td>${i}</td>
<td>${x.title}</td>
<td>${x.date}</td>
</tr>`)
}
如果使用vanila javascript,则指向相同。
获取数据后,您应该控制document.dom。
答案 1 :(得分:0)
在不知道表单的情况下,您将获取数据:
let restoTable = document.getElementById('restaurants');
var get_restaurants = function(route_callbck){
var AWS = require('aws-sdk');
AWS.config.loadFromPath('./config.json');
var async = require('async');
var docClient = new AWS.DynamoDB.DocumentClient();
var params = {
TableName: "restaurants"
};
docClient.scan(params).eachPage((err, data, done) => {
if (data != null) {
for(var index=0; index<data.Items.length; index++) {
var record = data.Items[index];
var newRow = restoTable.insertRow(index); //insert new row to the end of a table
var dataArr = Object.values(record); //convert record to an array, if needed. Perhaps you already have...
for(var c=0; c<dataArr.length;c++){
var newCell = newRow.insertCell(c); //insert new cell to the end of the row...
var newText = document.createTextNode(dataArr[c]); //...and fill it
newCell.appendChild(newText);
}
}
}
});
};