Извините, если у меня есть какой-то глупый вопрос, в конце концов, я новичок в node.js, моя проблема в том, что мне не удалось отобразить данные из сущности в рамках express.js, я используюMysql с TypeORM и шаблонный движок ejs.
Я перепробовал много примеров, и ниже приведен один из них https://github.com/typeorm/typescript-express-example, но, похоже, это не работает.
мой редактор VSC, а ниже мой каталог. каталог
ниже мои коды
1 - сущность (MasterKategori.ts):
import {Column, Entity, PrimaryGeneratedColumn} from "typeorm";
@Entity("mst_kategori")
export class MasterKategori {
@PrimaryGeneratedColumn()
public id: number;
@Column("varchar")
public KodeKategori: string;
@Column("varchar")
public NamaKategori: string;
@Column("varchar")
public Keterangan: string;
@Column("timestamp")
public AddDate: Date;
@Column("datetime")
public ModifiedDate: Date;
@Column("int")
public ModifiedUser: number;
@Column("int")
public AddUser: number;
}
2 - index.ts
ниже - мой index.ts, в этом скрипте я назвал маршруты (rout.ts):
import dotenv from "dotenv";
import express from "express";
import path from "path";
import "reflect-metadata";
import {createConnection} from "typeorm";
import * as routes from "./routes";
createConnection().then(async (connection) => {
dotenv.config();
const port = process.env.SERVER_PORT;
const app = express();
app.set( "views", path.join( __dirname, "views" ) );
app.set( "view engine", "ejs" );
routes.web(app);
app.listen(port);
console.log(`Alhamdulillah, aplikasi ini menggunakan port ${port}!`);
}).catch((error) => console.log("TypeORM connection error: ", error));
3 - rout.ts:
import * as express from "express";
import HomeController from "./controllers/HomeController";
export const web = ( app: express.Application ) => {
// default homepage routes, and calling the controller
app.get( "/", HomeController.home);
};
4 - mycontroller(HomeController.ts), в этом коде я назвал сущность (MasterKategori.ts) и отрисовал для представления, я использую шаблонизатор ejs
import * as express from "express";
import {getConnection} from "typeorm"; //calling typeORM
import {MasterKategori} from "../entity/MasterKategori"; //calling the Entity
class HomeController {
public home = (request: express.Request, response: express.Response) => {
const kategoriData = getConnection().getRepository(MasterKategori).find(); //get all data
const kategori = Object.entries(kategoriData);
response.render("page", {kat: kategori});
}
}
export default new HomeController();
5 - представление (page.ejs)
<ul>
<% kat.forEach(function(katdata){ %>
<li><%= katdata.NamaKategori %> - <%= katdata.KodeKategori %></li>
<% }) %>
</ul>
и ниже - таблица и записи mysql:
select * from `mst_kategori`;
id KodeKategori NamaKategori Keterangan AddDate ModifiedDate ModifiedUser AddUser
------ ------------ ------------ ---------- ------------------- ------------------- ------------ ---------
1 Coba Coba Coba 2019-05-25 09:21:00 0000-00-00 00:00:00 0 0
2 lagi lagi lagi 2019-05-25 10:02:48 0000-00-00 00:00:00 0 0
К сожалению, результат отображается пустым в браузере, и если я сделаю 'console.log (kategori)', получим возвратэто '[]' (данные не предоставлены).
Я очень благодарен за любую помощь, у меня от этой проблемы болит голова.
однако яочень новичок в node.js, это поможет мне начать с ORM и MVC в express.js для моего проекта