我有一个包含行的列表,每个列li都有一个data-status值为1-5 的属性:
<ul>
<li data-status="1"></li>
<li data-status="2"></li>
<li data-status="2"></li>
<li data-status="1"></li>
<li data-status="1"></li>
<li data-status="2"></li>
<li data-status="3"></li>
<li data-status="4"></li>
<li data-status="5"></li>
<li data-status="5"></li>
<li data-status="1"></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我希望每个奇怪li的data-status是1是有不同的背景,是否可以在CSS中做?
如何使用 Nest.js 在 mongoose 模式中创建属性索引?
我尝试将索引添加为属性选项,但尚未创建索引:
@Schema()
export class Schema extends Document {
@Prop()
_id: string;
@Prop({required: true, index: true})
type: string;
@Prop()
creationDate: string;
@Prop()
name: string;
}
export const MySchema = SchemaFactory.createForClass(Schema);
Run Code Online (Sandbox Code Playgroud)
我也试过这种方式:
export const MySchema = SchemaFactory.createForClass(Schema).index({ type: 1 });
Run Code Online (Sandbox Code Playgroud)
两者都没有按预期工作。
有什么方法可以做到这一点?
谢谢
我在 NestJs 中使用 AuthGuard 来验证请求 jwt 令牌。因为我的服务只是验证令牌而不是创建它,所以它不能使用“nbf”验证,以避免创建令牌的服务器的时间晚于我的服务器的情况。
当使用 jsonwebtoken 库使用纯 Node.js 时,可以轻松添加选项来关闭此验证,方法是添加:
jwt.verify(token, cert, {ignoreNotBefore: true})
Run Code Online (Sandbox Code Playgroud)
这也有效。但是,我该如何使用 Nest 来做到这一点呢?
这是我的守卫:
@Injectable()
export class JwtAuthGuard extends AuthGuard('jwt') {
constructor(private reflector: Reflector,
private authService: AuthService) {
super();
}
async canActivate(context: ExecutionContext) {
const isValid = await super.canActivate(context);
return isValid;
}
handleRequest(err, user, info) {
if (err || !user) {
Logger.error(`Unauthorized: ${info && info.message}`);
throw err || new UnauthorizedException();
}
return user;
}
}
Run Code Online (Sandbox Code Playgroud)
在JWT策略中,我尝试在调用PassportStrategy的“super”时添加ignoreNotBefore选项,但这不起作用:
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor(private …Run Code Online (Sandbox Code Playgroud) 我有一个 nest.js 节点服务器,我试图在 app.module 中连接 mongoDB 数据库,当连接字符串不包含数据库名称时 - 连接到默认数据库“测试”成功,但是当我指定数据库名称 - 总是收到“身份验证失败”错误。
app.module.ts:
这有效:
imports: [
MongooseModule.forRoot('mongodb://admin:admin@localhost:30000'),
]
Run Code Online (Sandbox Code Playgroud)
但是指定数据库名称失败并出现身份验证错误:
imports: [
MongooseModule.forRoot('mongodb://admin:admin@localhost:30000/test'),
]
Run Code Online (Sandbox Code Playgroud)
或者:
imports: [
MongooseModule.forRoot('mongodb://admin:admin@localhost:30000/data'),
]
Run Code Online (Sandbox Code Playgroud)
直接使用 MongoClient(不带 nestjs)连接成功:
const client = new MongoClient('mongodb://admin:admin@localhost:30000');
await client.connect();
db = client.db('data');
Run Code Online (Sandbox Code Playgroud)
知道我的问题是什么,我应该怎么做才能解决这个问题?
谢谢。