小编JVi*_*lla的帖子

打字稿和猫鼬模型

我正在尝试使用Typescript将我的模型与猫鼬模式绑定。我有我的IUser界面:

export interface IUser{

   _id: string;

   _email: string;
}
Run Code Online (Sandbox Code Playgroud)

我的用户类别:

export class User implements IUser{
  _id: string;
  _email: string;
}
Run Code Online (Sandbox Code Playgroud)

我的RepositoryBase:

export class RepositoryBase<T extends mongoose.Document> {

 private _model: mongoose.Model<mongoose.Document>;

  constructor(schemaModel: mongoose.Model<mongoose.Document>) {
     this._model = schemaModel;
  }

 create(item: T): mongoose.Promise<mongoose.model<T>> {
    return this._model.create(item);
 }
}
Run Code Online (Sandbox Code Playgroud)

最后是我的UserRepository,它扩展了RepositoryBase并实现了IUserRepository(实际上为空):

export class UserRepository  extends RepositoryBase<IUser> implements     IUserRepository{

  constructor(){
    super(mongoose.model<IUser>("User", 
        new mongoose.Schema({
            _id: String,
            _email: String,
        }))
    )
  }
Run Code Online (Sandbox Code Playgroud)

}

问题是打字稿编译器一直在说: 类型“ IUser”不满足约束“文档”

如果我这样做:

export interface IUser extends mongoose.Document
Run Code Online (Sandbox Code Playgroud)

该问题已解决,但编译器表示: 类型“用户”中缺少属性“增量”

真的,我不希望我的IUser扩展mongoose.Document,因为IUser或User都不应该知道存储库的工作方式及其实现。

model mongoose node.js typescript

6
推荐指数
1
解决办法
2877
查看次数

摩卡柴请求和快递会议

使用两个嵌套的chai请求时,会话丢失.

chai.request(server)
    .post('/api/v1/account/login')
    .send({_email: 'test@test.com', _password: 'testtest'})
    .end(function(err, res){
        chai.request(server)
        .get('/api/v1/user/me')
        .end(function(err2, res2){
            //here i should get the session, but its empty
            res2.should.have.status(200);
            done();
        });
    });
Run Code Online (Sandbox Code Playgroud)

而且我很确定这是我的mocha测试中的一个错误,因为我在测试之外尝试了它(登录然后检索会话)并且正在设置会话.

session request mocha.js chai

3
推荐指数
1
解决办法
3667
查看次数

标签 统计

chai ×1

mocha.js ×1

model ×1

mongoose ×1

node.js ×1

request ×1

session ×1

typescript ×1