使用猫鼬和打字稿创建模式

Posted

技术标签:

【中文标题】使用猫鼬和打字稿创建模式【英文标题】:Creating schema with mongoose and typescript 【发布时间】:2017-06-30 19:26:59 【问题描述】:

尝试创建新的猫鼬模式,但问题是我总是得到只有两列的新集合:_id 和 __v。就是这样,没有我的模式列。 这是架构代码:

import DataAccess from '../DataAccess';
import IUserModel from '../../model/interfaces/UserModel';

var mongoose = DataAccess.mongooseInstance;
var mongooseConnection = DataAccess.mongooseConnection;
class UserSchema 
  static get schema() 
    var schema = mongoose.Schema(
      email: 
        type: String,
        required: false
      ,
      firstName: 
        type: String,
        required: false
      ,
      lastName: 
        type: String,
        required: false
      ,
      createdAt: 
        type: Date,
        required: false
      
    );

    return schema;
  


var schema = mongooseConnection.model<IUserModel>('Users', UserSchema.schema);

export default schema;

用户模型非常简单:

import mongoose = require('mongoose');

interface UserModel extends mongoose.Document 
  email: string;
  firstName: string;
  lastName: string;
  createdAt: Date;


export default UserModel;

数据访问层:

import mongoose = require('mongoose');

class DataAccess 
  static mongooseInstance: any;
  static mongooseConnection: mongoose.Connection;

  static connect(): mongoose.Connection 
    const MONGODB_CONNECTION: string = 'mongodb://localhost:27017/dbname';

    if (this.mongooseInstance) return this.mongooseInstance;

    this.mongooseConnection = mongoose.connection;
    this.mongooseConnection.once('open', () => 
      console.log('Connected to mongodb');
    )
    this.mongooseInstance = mongoose.connect(MONGODB_CONNECTION);
    return this.mongooseInstance;
  


DataAccess.connect();
export default DataAccess;

一旦我尝试创建新用户,它会在数据库中创建新文档,但只有两个默认列...

【问题讨论】:

嗯,我认为没关系,因为我正在相应地导入它。无论如何,我尝试更改名称但仍然没有成功,集合中只有两个字段。 【参考方案1】:

我的错,代码没问题,但问题在于通过谷歌浏览器中的邮递员扩展将值发布到服务器。只需添加 Content-Type = application/json.而已。 我想我现在可以结束这个问题了。

【讨论】:

以上是关于使用猫鼬和打字稿创建模式的主要内容,如果未能解决你的问题,请参考以下文章

无法将猫鼬虚拟与打字稿一起使用

无法将猫鼬虚拟与打字稿一起使用

尝试在打字稿中使用猫鼬和 bcrypt 比较密码

如何使用打字稿定义猫鼬模式参考字段?

打字稿:猫鼬模式的静态方法

打字稿 - 在箭头(回调)函数中使用它 - 猫鼬