控制器如下所示:
'use strict';
const PostgreRepository = require('../repository/repository');
const sequelize = require('../config/database');
const models = require('../models/init-models')
models(sequelize);
class Controller {
constructor(model) {
this._model = model;
this.add = this.add.bind(this);
this.findAll = this.findAll.bind(this);
this.findOne = this.findOne.bind(this);
this.update = this.update.bind(this);
this.remove = this.remove.bind(this);
this.repo = new PostgreRepository(sequelize, this._model)
}
add(req, res) {
console.log(req.originalUrl);
this.repo.add(req.body).then(data =>{
res.send(data)
}, err => res.status(400).send(err))
}
findAll(req, res) {
this.repo.findAll().then(data => {
res.send(data)
// res.render('pages/index', {data:data})
}, err => res.status(400).send(err))
}
findOne(req, res) {
this.repo.findOne(req.params.id).then(data => {
res.send(data)
}, err => res.status(400).send(err))
}
update(req, res) {
this.repo.update(req.body, req.params.id).then(data => {
res.send(data)
}, err => res.status(400).send(err))
}
remove(req, res) {
console.log(req.params.id);
this.repo.remove(req.params.id).then(data => {
res.send(data)
}, err => res.status(400).send(err))
}
}
module.exports = Controller
我有回傳列數不同的物件的 JSON 串列的 API。
我可以創建單個 EJS 頁面來根據收到的列數生成表格嗎?
例如,一個 JSON 將回傳:
[
{
"country_pk": 1,
"code": "AF",
"name": "Afghanistan"
},
{
"country_pk": 2,
"code": "AL",
"name": "Albania"
},
{
"country_pk": 3,
"code": "DZ",
"name": "Algeria"
}, ...
]
另一個會有:
[ {
"city_pk": 1041,
"city": "Partesh",
"lat": "42.4019",
"lng": "21.4336",
"admin_name": "Partesh",
"capital": "admin",
"population": "5300",
"population_proper": "5300",
"country": 247
},
{
"city_pk": 1042,
"city": "Korish?",
"lat": "42.2576",
"lng": "20.7981",
"admin_name": "Prizren",
"capital": "",
"population": "5279",
"population_proper": "5279",
"country": 247
}, ...
]
那么,我可以使用 EJS 根據收到的 JSON 動態創建表嗎?鏈接或示例會很棒,但最好有解釋!
我知道如何遍歷陣列,但前提是我知道欄位(列)的名稱,如下所示:
<% for(var i=0; i<data.length; i ){ %>
<h1><%= data[i].code %></h1>
<h3><%= data[i].name %></h3>
<% } %>
但如果我沒有關于欄位數量或名稱的資訊,我不知道該怎么做。
uj5u.com熱心網友回復:
您可以像您說的那樣遍歷陣列,然后遍歷陣列的每個物件兩次。首先列印標題,然后列印資料
for...of 陳述句創建一個回圈遍歷可迭代物件,包括:內置字串、陣列、類陣列物件(例如,引數或 NodeList)、TypedArray、Map、Set 和用戶定義的可迭代物件。它呼叫一個自定義迭代鉤子,其中包含要為物件的每個不同屬性的值執行的陳述句。
for...in 陳述句遍歷由字串作為鍵的物件的所有可列舉屬性
<table>
<% for(const obj of data){ %>
<tr>
<% for(const key in obj) { %>
<th><%= key %></th>
<% } %>
</tr>
<tr>
<% for(const key in obj) { %>
<td><%= obj[key] %></td>
<% } %>
</tr>
<% } %>
</table>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/422734.html
標籤:
