我想知道是否可以HttpService使用HttpModule.
我曾经使用 AXIOS 的拦截器,HttpService包装了 axios 但我似乎无法在这里添加任何拦截器,似乎没有地方
HttpModule.register(...)
Run Code Online (Sandbox Code Playgroud)
然后我想到NestJS自带拦截器,想知道是否可以使用NestJS拦截器。
我不想将拦截器应用于控制器、服务,而是将其应用于HttpService?
任何想法,有点迷失如何以 Nestjs 的方式做到这一点。
提前致谢
此处提供了Repo来突出显示该问题。
我遇到了竞争条件问题。我创建了一个ConfigModule- 这有一个forRoot和一个forChild。
设置文件forRoot的加载.env并forChild在另一个模块中使用它。
问题是forChild之前调用过forRoot。由于尚未首先执行,因此将ConfigService注入缺少的配置。forRoot
> AppModule > ConfigModule.forRoot InstanceModule >
> ConfigModule.forChild
Run Code Online (Sandbox Code Playgroud)
我放置了一些简单的console.log命令来输出这个
I am in Config Module FOR CHILD
I am in Config Module FOR ROOT
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,forChild首先执行的是,我尝试使用forwardRef,但没有成功。
如果你让应用程序运行你会看到
[2019-03-24T11:49:33.602] [ERROR] ConfigService - There are missing mandatory configuration: Missing PORT
[2019-03-24T11:49:33.602] [FATAL] ConfigService - Missing mandatory configuration, cannot continue!, exiting
Run Code Online (Sandbox Code Playgroud)
这是因为我检查了一些process.env可用的文件,这些文件是在 …
任何人都可以帮忙吗?
每次我尝试启动 redis 所以我连接我正在编写的应用程序时都会出现错误
错误:对于 redis 无法为服务 redis 创建容器:源不是目录
我像这样创建了一个简单的 dockerfile
FROM redis:5-alpine
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
Run Code Online (Sandbox Code Playgroud)
和我的撰写文件
version: "3"
services:
redis:
container_name: "redis"
build:
context: ./
dockerfile: Dockerfile
ports:
- "6379:6379"
volumes:
- redis-data:/usr/local/etc/redis/redis.conf
networks:
- internal
restart: unless-stopped
volumes:
redis-data:
networks:
internal:
external: false
Run Code Online (Sandbox Code Playgroud)
我尝试删除 dockerfile 中的 COPY 命令并构建了容器。还尝试删除撰写文件中的卷,它还构建了容器。
所以它与此有关,但我看不到它。
有人可以帮忙吗?
我知道我做了一些愚蠢的事情。
文件都在同一个目录下
我目前正在为我创建的一些开发人员静态文档提供静态文件,我目前正在使用
app.useStaticAssets(docsLocation, {
prefix: "/docs/"
})
Run Code Online (Sandbox Code Playgroud)
我的问题是,我有另一个想要提供服务的目录,它也有静态内容,是否可以从不同的位置提供服务并为每个位置使用不同的前缀?
任何想法,这都没有在文档中涵盖。
谢谢