Iteratively Adding Item in separate JS file to an HTML/EJS table in rows - Using NodeJS
I have a function defined in a file called database.js whenever a certain page is loaded. An associated page is loginpage.ejs, which starts with a blank table element.
In this function in database.js, I retrieve values from DynamoDB in a loop, parsing each entry using the JSON parse function.
Here is the function.
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();
);
;
I have an ejs file with a table defined as shown. loginpage.ejs
<table name="restaurants"></table>
So console.log prints each item... but I want to add each item to the table named restaurants in the ejs file. For now I'd simply like to add the whole string to the table- so one entry for each item as I iterate. I can figure out dissecting the JSON later.
I'm not sure how I can place this function in the ejs file perhaps and call it upon loading, or if that will even work the same way? Any help would be greatly appreciated!
javascript html node.js
add a comment |
I have a function defined in a file called database.js whenever a certain page is loaded. An associated page is loginpage.ejs, which starts with a blank table element.
In this function in database.js, I retrieve values from DynamoDB in a loop, parsing each entry using the JSON parse function.
Here is the function.
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();
);
;
I have an ejs file with a table defined as shown. loginpage.ejs
<table name="restaurants"></table>
So console.log prints each item... but I want to add each item to the table named restaurants in the ejs file. For now I'd simply like to add the whole string to the table- so one entry for each item as I iterate. I can figure out dissecting the JSON later.
I'm not sure how I can place this function in the ejs file perhaps and call it upon loading, or if that will even work the same way? Any help would be greatly appreciated!
javascript html node.js
add a comment |
I have a function defined in a file called database.js whenever a certain page is loaded. An associated page is loginpage.ejs, which starts with a blank table element.
In this function in database.js, I retrieve values from DynamoDB in a loop, parsing each entry using the JSON parse function.
Here is the function.
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();
);
;
I have an ejs file with a table defined as shown. loginpage.ejs
<table name="restaurants"></table>
So console.log prints each item... but I want to add each item to the table named restaurants in the ejs file. For now I'd simply like to add the whole string to the table- so one entry for each item as I iterate. I can figure out dissecting the JSON later.
I'm not sure how I can place this function in the ejs file perhaps and call it upon loading, or if that will even work the same way? Any help would be greatly appreciated!
javascript html node.js
I have a function defined in a file called database.js whenever a certain page is loaded. An associated page is loginpage.ejs, which starts with a blank table element.
In this function in database.js, I retrieve values from DynamoDB in a loop, parsing each entry using the JSON parse function.
Here is the function.
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();
);
;
I have an ejs file with a table defined as shown. loginpage.ejs
<table name="restaurants"></table>
So console.log prints each item... but I want to add each item to the table named restaurants in the ejs file. For now I'd simply like to add the whole string to the table- so one entry for each item as I iterate. I can figure out dissecting the JSON later.
I'm not sure how I can place this function in the ejs file perhaps and call it upon loading, or if that will even work the same way? Any help would be greatly appreciated!
javascript html node.js
javascript html node.js
asked Nov 9 '18 at 19:51
rubyquartz
1867
1867
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
maybe, var x = [no:1, title:'hh', date:'2018-11-2' .., ..etc]. right?
after get data,
in case jquery,
$("#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>`)
if you use vanila javascript, point is same.
you should control document.dom after get data.
add a comment |
Without knowing the form you get data in:
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);
);
;
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53232432%2fiteratively-adding-item-in-separate-js-file-to-an-html-ejs-table-in-rows-using%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
maybe, var x = [no:1, title:'hh', date:'2018-11-2' .., ..etc]. right?
after get data,
in case jquery,
$("#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>`)
if you use vanila javascript, point is same.
you should control document.dom after get data.
add a comment |
maybe, var x = [no:1, title:'hh', date:'2018-11-2' .., ..etc]. right?
after get data,
in case jquery,
$("#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>`)
if you use vanila javascript, point is same.
you should control document.dom after get data.
add a comment |
maybe, var x = [no:1, title:'hh', date:'2018-11-2' .., ..etc]. right?
after get data,
in case jquery,
$("#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>`)
if you use vanila javascript, point is same.
you should control document.dom after get data.
maybe, var x = [no:1, title:'hh', date:'2018-11-2' .., ..etc]. right?
after get data,
in case jquery,
$("#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>`)
if you use vanila javascript, point is same.
you should control document.dom after get data.
answered Nov 9 '18 at 23:06
곽대용
455
455
add a comment |
add a comment |
Without knowing the form you get data in:
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);
);
;
add a comment |
Without knowing the form you get data in:
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);
);
;
add a comment |
Without knowing the form you get data in:
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);
);
;
Without knowing the form you get data in:
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);
);
;
answered Nov 10 '18 at 7:45
Sven Liivak
84218
84218
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53232432%2fiteratively-adding-item-in-separate-js-file-to-an-html-ejs-table-in-rows-using%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown