Javascript 在nodejs的typescript类中使用路由器对象时发生异常
我有一个typescript中的nodejs服务。我试图在应用程序中设置一个单独的路由层 我有一个app.js文件,其中Javascript 在nodejs的typescript类中使用路由器对象时发生异常,javascript,node.js,typescript,express,routing,Javascript,Node.js,Typescript,Express,Routing,我有一个typescript中的nodejs服务。我试图在应用程序中设置一个单独的路由层 我有一个app.js文件,其中 let IndividualRoute= require('./routing/IndividualRoute'); app.use('/users', IndividualRoute); 我已经创建了一个IndividualRoute.ts文件,我试图在其中使用路由器对象,如下所示 import express = require('express'); import i
let IndividualRoute= require('./routing/IndividualRoute');
app.use('/users', IndividualRoute);
我已经创建了一个IndividualRoute.ts文件,我试图在其中使用路由器对象,如下所示
import express = require('express');
import individualValidation from '../users/IndividualValidation';
let router = express.Router();
class IndividualRoute {
router.get('/individualList', individualValidation.list);
}
export = IndividualRoute;
当我尝试执行上述操作时,我得到以下异常
我尝试了以下方法
router.get('/individualList', (request, response) => {
response.send('Hello world!');
});
但我也有同样的问题。另外,如果我删除了这个类,并且有一个没有类的简单文件,那么我不会得到这个异常
基本上,我想做的是,如果路由匹配,它应该命中IndividualValidation文件中的相应函数,如下面的例子所示
router.get('/individualList', individualValidation.list);
如果路由是users/individualList,则应使用请求数据点击individualValidation.list函数。基本上,我正在尝试做下面链接中标记为答案的事情
任何关于我做错了什么的建议。你在写一节课。在类中,放置构造函数和方法。您不能在这里直接编写代码。您编写的行需要位于构造函数或方法中
class IndividualRoute {
constructor(){
router.get('/individualList', individualValidation.list);
}
}
在
IndividualRoute.ts
中,请进行以下更改:
从“express”导入{Router};
从“../users/individualValidation”导入individualValidation;
让路由器=路由器();
get('/individualList',individualValidation.list);
导出默认路由器;
另外,如果使用typescript,为什么要使用app.js?我建议对该文件也使用typescript。另一个建议是在路由
文件夹中设置index.ts,其中包含以下代码:
从express导入{Router};
从“/IndividualRoute”导入IndividualRoute;
让路由器=路由器();
路由器。使用(“/users”,IndividualRoute);//为每个单独的路线设置此选项
/*
*例如。
*使用(“/auth”,auth);
*/
导出默认路由器;
因此,在你的app.ts
中,你所要做的就是:
从“express”导入*为express;
从“/routing”导入路由;
设app=express();
应用程序使用(路线);
//其他代码
我希望这对你有帮助 在对app.ts进行更改后,我在等待删除错误时遇到以下错误:找不到模块“/routing”。因此,要明确,在根文件夹中,您有文件app.ts、文件夹路由,而在文件夹路由中,您有文件index.ts?