Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nest.js 中文文档 #3

Open
zuohuadong opened this issue Sep 30, 2018 · 18 comments
Open

Nest.js 中文文档 #3

zuohuadong opened this issue Sep 30, 2018 · 18 comments

Comments

@zuohuadong
Copy link
Contributor

https://docs.nestjs.cn/

更优雅的 node.js 框架

@little-buddy
Copy link

能告诉我。nest里面的moduleCompiler是啥东西,这个metadata到底是啥,我咋看不懂呢

@LinSundy
Copy link

LinSundy commented Oct 4, 2018

我使用了中间件 express-session, 但是我从后台服务通过req.sesstion.username='123456', 前台浏览器始终没办法获取cookie

@zuohuadong
Copy link
Contributor Author

@LinSundy
我使用了中间件 express-session, 但是我从后台服务通过req.sesstion.username='123456', 前台浏览器始终没办法获取cookie

参考官方MVC 的例子: https://github.com/nestjs/nest/tree/master/sample/15-mvc
以及相关文档: https://docs.nestjs.cn/5.0/techniques?id=mvc
我们这块一直用的 jwt, 对session/cookies 没做具体了解。

@zuohuadong
Copy link
Contributor Author

@little-buddy
能告诉我。nest里面的moduleCompiler是啥东西,这个metadata到底是啥,我咋看不懂呢

元数据是关于数据仓库的数据,指在数据仓库建设过程中所产生的有关数据源定义,目标定义,转换规则等相关的关键数据。 可以参考java 中关于元数据相关的描述。

@little-buddy
Copy link

@zuohuadong
那 dynamicModule 是什么样的格式呢?没有在官网找到一个例子,是异步模块?可不可以提供一个例子啊

@dzzzzzy
Copy link
Member

dzzzzzy commented Oct 9, 2018

@little-buddy dynamicModule 是当你需要根据不同的参数去创建不同特性的模块时使用的,比如,你有一个功能模块,他的提供者可能需要不同的参数去在不同的地方做不同的事情,那此时你只需要给这个模块传入不同的参数,让他去动态的创建不同的提供者,此时这个模块就称为动态模块。一般来说一个动态模块都会有一个静态方法作为导入该模块并传入参数的入口,这个方法可以是同步的或是异步的。

例子:

@Module({})
export class RedisAddon {
    static forRoot(options: RedisOptions): DynamicModule {
        return {
            module: RedisAddon,
            providers: [
                { provide: REDIS_MODULE_OPTIONS, useValue: options },
                RedisClientProvider,
                RedisService
            ],
            exports: [RedisService]
        };
    }
}

这个例子中我创建了一个动态的 RedisModule,他会根据不同的 RedisOptions 来创建不同的 RedisClient,在不同项目中的不同模块使用他时,传入不同的参数,即可创建不同的 RedisClient 去使用。

@little-buddy
Copy link

@dzzzzzy
我突然发现 module一章有提到 dynamicModule...😔...大意了... 还好大佬心地善良,没有喷我。

Thanks♪(・ω・)ノ

@little-buddy
Copy link

@dzzzzzy @zuohuadong
这回我真的发现了一个文档里面没有的问题。
那就是 -> @Shared@Global 修饰的模块之间有什么区别啊,在实际中有什么妙用啊。是不是单例都属于Shared啊,但是我看很少用Shared去修饰模块啊

一个模块修饰成 Global,是不是该模块下的 imports内的模块都变成了 全局模块啊 ?

╰(°▽°)╯

@dzzzzzy
Copy link
Member

dzzzzzy commented Oct 11, 2018

@little-buddy @Shared 注解已经弃用了,关于 @Global 模块,可以看看这个 Nest Module

@ishowman
Copy link

ishowman commented Mar 2, 2019

@zuohuadong

@LinSundy
我使用了中间件 express-session, 但是我从后台服务通过req.sesstion.username='123456', 前台浏览器始终没办法获取cookie

参考官方MVC 的例子: https://github.com/nestjs/nest/tree/master/sample/15-mvc
以及相关文档: https://docs.nestjs.cn/5.0/techniques?id=mvc
我们这块一直用的 jwt, 对session/cookies 没做具体了解。

@LinSundy
我使用了中间件 express-session, 但是我从后台服务通过req.sesstion.username='123456', 前台浏览器始终没办法获取cookie

nestjs没有支持session认证的轮子吗?

@ishowman
Copy link

ishowman commented Mar 2, 2019

@LinSundy
我使用了中间件 express-session, 但是我从后台服务通过req.sesstion.username='123456', 前台浏览器始终没办法获取cookie

“浏览器没办法获取cookie”是指浏览器没有cookie?浏览器cookie的设置和获取应该是在客户端去做的,服务端不需要干涉。
另外问下,“我使用了中间件 express-session”,是不是express的轮子nestjs也能用(原因是nestjs是基于express封装的?)?

@Pingze-github
Copy link

Cache部分如何清理缓存呢?总不能等待缓存过期吧。
我尝试了下,似乎缓存装饰器只在具有请求上下文的控制器层有效,也不能应用于更细粒度的services。
这部分的发展目前是什么状态呢?

@zyu
Copy link

zyu commented Mar 15, 2019

@Pingze-github
Cache部分如何清理缓存呢?总不能等待缓存过期吧。
我尝试了下,似乎缓存装饰器只在具有请求上下文的控制器层有效,也不能应用于更细粒度的services。
这部分的发展目前是什么状态呢?
更细粒度的 就用switch indexof url

@zuohuadong
Copy link
Contributor Author

可以

@Pingze-github
Cache部分如何清理缓存呢?总不能等待缓存过期吧。
我尝试了下,似乎缓存装饰器只在具有请求上下文的控制器层有效,也不能应用于更细粒度的services。
这部分的发展目前是什么状态呢?

可以参考 https://www.jianshu.com/p/e7b0f3eb3aed

@lizhongyi
Copy link

lizhongyi commented Apr 14, 2019

如何基于6.0创建项目呢?

@zuohuadong
Copy link
Contributor Author

如何基于6.0创建项目呢?
目前默认就是 6.0

@lizhongyi
Copy link

@zuohuadong

如何基于6.0创建项目呢?
目前默认就是 6.0
那我需要升级我的nest-cli吗?

@zuohuadong
Copy link
Contributor Author

@lizhongyi

@zuohuadong

如何基于6.0创建项目呢?
目前默认就是 6.0
那我需要升级我的nest-cli吗?

可以不升级,但最好升级下。 重新跑一遍命令就行

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants