首页 文章

使用mongoose和typescript创建模式

提问于
浏览
1

尝试创建新的mongoose模式但问题是我总是只有两个列获得新集合:_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 回答

  • 1

    我的错,代码还可以,但问题是在谷歌浏览器中通过postman扩展名向服务器发布值 . 只需要添加Content-Type = application / json . 而已 . 我猜我现在可以关闭这个问题了 .

相关问题