gpt4 book ai didi

node.js - 从 Typescript 类定义 ExpressJS 路由

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:35 24 4
gpt4 key购买 nike

我正在尝试从 Typescript 类加载 ExpressJS 路由。我们的想法是,这最终应该是动态路线。但我已经陷入了在类中定义硬编码路由的困境。

我的 index.ts js 如下所示:

import generic = require('./generic');
import Generic = generic.Generic;

class Test {

private app:any;
private port:number = 3000;

constructor() {
this.app = express();
new Generic();
this.app.listen(this.port, () => {
console.log('Listening on port ' + this.port);
});
}
}

export = Test;
new Test();

然后我的 generic.ts 看起来像这样。我正在尝试从此类定义另一条路线:

module Generic {
export class Generic {

constructor() {
console.log('In generic');

var router:any = express.Router();

router.get('/', function (req, res) {
res.setHeader('Content-Type', 'application/json');
res.status(200).send("AAA");
});
}
}
}
export = Generic;

当我运行应用程序时,我会看到控制台中出现消息In generic。但是当我加载浏览器时它会显示:

Cannot GET /

因此,由于某种原因,它并没有真正从 Generic 类注册路由。我做错了什么?

最佳答案

看看sample on Microsoft's github page 。他们不使用 express.Router,而是简单地使用 get 并从外部模块导入该函数。它对我来说效果很好。

app.ts

import * as express from "express";
import * as routes from "./routes/index";

var app = express();

app.get('/', routes.index);

路线/index.ts

import express = require("express")

export function index(req: express.Request, res: express.Response) {
res.render('index', { title: 'ImageBoard'});
};

关于node.js - 从 Typescript 类定义 ExpressJS 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36064582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com