使用猫鼬和打字稿创建模式
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.而已。 我想我现在可以结束这个问题了。
【讨论】:
以上是关于使用猫鼬和打字稿创建模式的主要内容,如果未能解决你的问题,请参考以下文章