使用express.js+;无法在视图中显示数据;mysql+;ejs&x2B;打字

使用express.js+;无法在视图中显示数据;mysql+;ejs&x2B;打字,mysql,node.js,express,ejs,typeorm,Mysql,Node.js,Express,Ejs,Typeorm,很抱歉,如果我有一些愚蠢的问题,在我看来,我是node.js的新手,我的问题是我无法在express.js框架中显示实体中的数据,我正在使用Mysql和TypeORM,以及ejs模板引擎 我试过很多例子,下面就是其中之一 但这似乎不管用 我的编辑器是VSC,下面是我的目录 下面是我的代码 1-实体(MasterKategori.ts): 2-index.ts 下面是我的index.ts,在这个脚本中我称之为路由(routes.ts): 3-routes.ts: 4-mycontroller(Ho

很抱歉,如果我有一些愚蠢的问题,在我看来,我是node.js的新手,我的问题是我无法在express.js框架中显示实体中的数据,我正在使用Mysql和TypeORM,以及ejs模板引擎

我试过很多例子,下面就是其中之一 但这似乎不管用

我的编辑器是VSC,下面是我的目录

下面是我的代码

1-实体(MasterKategori.ts): 2-index.ts 下面是我的index.ts,在这个脚本中我称之为路由(routes.ts):

3-routes.ts: 4-mycontroller(HomeController.ts),在这段代码中我调用了实体(MasterKategori.ts)并呈现到视图中,我使用的是ejs模板引擎 5-视图(page.ejs) 不幸的是,浏览器中的结果为空,如果我使用“console.log(kategori)”,则返回“[]”(未提供数据)

我真的很感谢你的任何帮助,我为这个问题感到头疼

不过,我对node.js非常熟悉,这将帮助我从express.js中的ORM和MVC开始我的项目

很抱歉,错误是

HomeController.ts:7:26 - non-arrow functions are forbidden
以下是变化

import * as express from "express";
import {getConnection} from "typeorm";
import {MasterKategori} from "../entity/MasterKategori";

class HomeController {

    public home  = async function(request: express.Request, response: express.Response) {
        const kategoriData = getConnection().getRepository(MasterKategori).find();
        const kategori = Object.entries(kategoriData);
        console.log(kategori);
        response.render("page", {kat: kategori});
    };
}

export default new HomeController();


它现在可以工作了,我把“等待”,非常感谢,下面是更新:

import * as express from "express";
import {getConnection} from "typeorm";
import {MasterKategori} from "../entity/MasterKategori";

class HomeController {

    public home  = async (request: express.Request, response: express.Response) => {
        const kategoriData = await getConnection().getRepository(MasterKategori).find();
        const kategori = Object.entries(kategoriData);
        console.log(kategori);
        response.render("page", {kat: kategori});
    }
}

export default new HomeController();

我认为getConnection().getRepository(MasterKategori).find()是一个异步函数,因此在kategoriData结束之前尝试访问它可能会给出一个空响应。尝试为getConnection()实现异步/等待。getRepository(MasterKategori)。希望对您有所帮助。感谢您的解释,如何在类(如控制器类)中放置异步?这可能会让您了解如何创建异步函数谢谢您的更新,使用async我无法使用视图“render”,如果您有其他线索,我将不胜感激,谢谢您使用代码更改更新问题??我还更改了:class HomeController{public home=async(请求:express.request,响应:express.response)=>{const-kategoriData=getConnection().getRepository(MasterKategori).find();const-kategori=Object.entries(kategoriData);console.log(kategori);response.render(“page”,{kat:kategori});}但数据仍然没有显示出来
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();
<ul>
    <% kat.forEach(function(katdata){ %>
        <li><%= katdata.NamaKategori %> - <%= katdata.KodeKategori %></li>
    <% }) %>
</ul>
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

HomeController.ts:7:26 - non-arrow functions are forbidden
import * as express from "express";
import {getConnection} from "typeorm";
import {MasterKategori} from "../entity/MasterKategori";

class HomeController {

    public home  = async function(request: express.Request, response: express.Response) {
        const kategoriData = getConnection().getRepository(MasterKategori).find();
        const kategori = Object.entries(kategoriData);
        console.log(kategori);
        response.render("page", {kat: kategori});
    };
}

export default new HomeController();

import * as express from "express";
import {getConnection} from "typeorm";
import {MasterKategori} from "../entity/MasterKategori";

class HomeController {

    public home  = async (request: express.Request, response: express.Response) => {
        const kategoriData = await getConnection().getRepository(MasterKategori).find();
        const kategori = Object.entries(kategoriData);
        console.log(kategori);
        response.render("page", {kat: kategori});
    }
}

export default new HomeController();