2017-10-14 43 views
0

我是比較新的打字稿,所以我部分按照本指南: http://brianflove.com/2016/11/11/typescript-2-express-mongoose-mocha-chai/+的NodeJS打字稿,貓鼬自定義的接口不擴展mongoose.Document正確

而且我結束了下面的代碼(只有相關部分):

import { Document } from "mongoose"; 
import { IUser } from "../interfaces/user"; 

export interface IUserModel extends IUser, Document { 
    // custom methods for your model would be defined here 
} 

和:

import { IUserModel } from "./models/user";  

let connection: mongoose.Connection = mongoose.createConnection(MONGODB_CONNECTION); 
this.model.user = connection.model<IUserModel>('User', userSchema); 

var newUser: IUserModel = <IUserModel>{username:'asd',password:'bsd',email:'lol',admin:false}; 

newUser.save(); 

而據編輯器,它應該工作,但是隻NEWUSER是T編譯後我給它的屬性。

我的設置與本教程中的設置非常相似。

有誰能告訴我我做錯了什麼?

回答

0

顯然,我的整個做法都是錯誤的。

創建一個新的用戶<IUserModel>{...}將簡單地創建一個匹配其接口參數的對象,沒有別的,所以在這種情況下,一個對象充滿了用戶名,密碼等,而不是實際的模型實例。

此外它甚至不涉及它上面的連接,這是我完全錯過了。

所以不是我必須做到以下幾點:

var newUser = new this.model.user({ username: 'asd', password: 'bsd', email: 'lol', admin: false }); 
newUser.save(); 

這造成我想正確的模型實例。