在nodejs/express项目中使用NestJs包

在nodejs/express项目中使用NestJs包,nestjs,Nestjs,我开发了一个nest JS模块。我使用npm publish在npm上发布了它 现在,我想在基于nodejs和express构建的项目中使用该NestJS模块 请告知我是否可以在node/express项目中使用nestjs模块。如果是,是否有相关文件 根据用户的评论,添加了一些详细信息 这是一种库,它有一个模块,导出的方法很少。这些方法包含调用aws sns服务以发送推送通知的实现 我发现一个链接现在正试图使用它 提前感谢。因为NestJS模块本身就是express应用程序的模块,所以要使该

我开发了一个nest JS模块。我使用npm publish在npm上发布了它

现在,我想在基于nodejs和express构建的项目中使用该NestJS模块

请告知我是否可以在node/express项目中使用nestjs模块。如果是,是否有相关文件

根据用户的评论,添加了一些详细信息

这是一种库,它有一个模块,导出的方法很少。这些方法包含调用aws sns服务以发送推送通知的实现

我发现一个链接现在正试图使用它


提前感谢。

因为NestJS模块本身就是express应用程序的模块,所以要使该模块在另一个当前未使用NestJS的应用程序中可用,您可以将其作为一个组件安装

我构建了一个NestJS模块,并将其作为vanilla express应用程序的子应用程序安装,您可以借用我的示例测试:

关键是将模块导出为已初始化的子应用程序,如果不在另一个express应用程序中使用NestJS框架本身,则无法将模块直接装入其中

//src/sub-app/boot.js
从'@nestjs/core'导入{NestFactory}
从“./module”导入{SubAppModule}
导出默认异步函数引导(){
const app=wait NestFactory.create(子应用模块)
返回应用程序
}
//src/app.js
从“/sub-app/boot”导入bootstrapsubap
从“express”导入express
const app=express()
app.get(“/”,(req,res)=>res.send('hello express\n'))
异步函数mountSubApp(app、mountPath、subAppBoot){
const subApp=wait subAppBoot()
等待subApp.init()
使用(mountPath,subApp.getHttpAdapter().getInstance())
返回应用程序
}
mountSubApp(应用程序,/sub',bootstrapSubApp)
.然后(app=>app.listen(4000))

如您所见,首先需要调用
subApp.init()
,然后使用
subApp.getHttpAdapter().getInstance()
获取express实例,以便将其装载到vanilla js express应用程序中。

因为NestJS模块本身就是express应用程序的模块,要使该模块在当前未使用NestJS的另一个应用程序中可用,您可以将其作为一个组件进行装载

我构建了一个NestJS模块,并将其作为vanilla express应用程序的子应用程序安装,您可以借用我的示例测试:

关键是将模块导出为已初始化的子应用程序,如果不在另一个express应用程序中使用NestJS框架本身,则无法将模块直接装入其中

//src/sub-app/boot.js
从'@nestjs/core'导入{NestFactory}
从“./module”导入{SubAppModule}
导出默认异步函数引导(){
const app=wait NestFactory.create(子应用模块)
返回应用程序
}
//src/app.js
从“/sub-app/boot”导入bootstrapsubap
从“express”导入express
const app=express()
app.get(“/”,(req,res)=>res.send('hello express\n'))
异步函数mountSubApp(app、mountPath、subAppBoot){
const subApp=wait subAppBoot()
等待subApp.init()
使用(mountPath,subApp.getHttpAdapter().getInstance())
返回应用程序
}
mountSubApp(应用程序,/sub',bootstrapSubApp)
.然后(app=>app.listen(4000))
如您所见,首先需要调用
subApp.init()
,然后使用
subApp.getHttpAdapter().getInstance()
获取express实例,以便将其装载到vanilla js express应用程序中。

仅用于更新

我在main.ts/index.ts中导出了方法,无论哪个文件是您的入口点

在那之后我做了

1:npm运行构建 2:npm发布

当我在express/nest的另一个项目中安装发布的包时,我就可以调用方法了

谢谢你的更新

我在main.ts/index.ts中导出了方法,无论哪个文件是您的入口点

在那之后我做了

1:npm运行构建 2:npm发布

当我在express/nest的另一个项目中安装发布的包时,我就可以调用方法了


谢谢

您可以使用ExpressAdapter在nest.js应用程序中托管express应用程序

从'@nestjs/core'导入{NestFactory}
从“./sub-app/module”导入{SubAppModule}
从“@nestjs/core/adapters/ExpressAdapter”导入{ExpressAdapter}”;
从“/expressApp”导入{expressApp};
异步函数引导(){
const app=wait NestFactory.create(子应用模块,新的ExpressAdapter(expressApp))
app.listen(4444)
返回应用程序
}
bootstrap()
您可能会看到基于@Jesús Franco原始示例的完整示例:

您可以使用ExpressAdapter在nest.js应用程序中托管express应用程序

从'@nestjs/core'导入{NestFactory}
从“./sub-app/module”导入{SubAppModule}
从“@nestjs/core/adapters/ExpressAdapter”导入{ExpressAdapter}”;
从“/expressApp”导入{expressApp};
异步函数引导(){
const app=wait NestFactory.create(子应用模块,新的ExpressAdapter(expressApp))
app.listen(4444)
返回应用程序
}
bootstrap()
您可能会看到基于@Jesús Franco原始示例的完整示例:

这个问题太宽泛了,在目前的状态下无法回答。您的模块包含哪些内容?是中间件、服务、管道等吗?请更清楚地说明你的实际代码是做什么的。请在文章中包含更多细节。这个问题太广泛了,在当前状态下无法回答。您的模块包含哪些内容?是中间件、服务、管道等吗?请更清楚地说明你的实际代码是做什么的。我没有试过这样做。但我所做的是将main.ts/index.ts中的方法导出到作为入口点的任何文件中,我可以通过在另一个应用程序中安装此包来调用这些方法。我没有尝试这样做。但我所做的是将main.ts/index.ts中的方法导出到作为入口点的任何文件中,我