Привет я пытаюсь переписывание моего кода из простых JS в машинопись и есть некоторые проблемы с Mongoose схемами ...Mongoose + Машинопись Схема Схема экспорта
/// <reference path="../typings/tsd.d.ts" />
import * as mongoose from 'mongoose';
import * as bcrypt from "bcrypt";
var SALT_WORK_FACTOR = 10;
var mongodbURL = 'mongodb://localhost/test';
var mongodbOptions = {};
mongoose.connect(mongodbURL, mongodbOptions);
var Schema = mongoose.Schema;
// User schema
var User = new Schema({
username: { type: String, required: true, unique: true },
password: { type: String, required: true },
is_admin: { type: Boolean, default: false },
created: { type: Date, default: Date.now }
});
// Bcrypt middleware on UserSchema
User.pre('save', function(next) {
var user = this;
if (!user.isModified('password')) return next();
bcrypt.genSalt(SALT_WORK_FACTOR, function(err, salt) {
if (err) return next(err);
bcrypt.hash(user.password, salt, function(err, hash) {
if (err) return next(err);
user.password = hash;
next();
});
});
});
//Password verification
User.methods.comparePassword = function(password, cb) {
bcrypt.compare(password, this.password, function(err, isMatch) {
if (err) return cb(err);
cb(isMatch);
});
};
var userModel: mongoose.Model<any> = mongoose.model("User", User);
//Define Models
// Export Models trying ALL WAYS (((((
declare var exports: any;
exports.userModel = userModel;
(module).exports = userModel;
exports = {
userModel: userModel
}
export = userModel; // EXPORT
но когда я компилирую * .TS драм импортировать этот файл я вижу :
import {userModel} from '../config/mongo_database';
не экспортированный элемент 'userModel.
ИЛИ
import db = require('../config/mongo_database');
Свойство 'userModel' не существует по типу 'Модель'
но console.log(db)
показать мне
{ userModel:
{ [Function: model]
base:
{ connections: [Object],
plugins: [],
models: [Object],
modelSchemas: [Object],
options: [Object] },
modelName: 'User',
model: [Function: model],
..... .......
Есть ли методы, которые не используют TS combo (интерфейс, класс, схему, экспорт) и просто используют схемы мангуста?)
P.S. извините за мой английский ..
спасибо за ответ, у меня есть какой-то вопрос-то еще 'интерфейс IUser { \t имя пользователя: строка; \t пароль: string; // .... } экспорт Const UserModel = mongoose.model ("Пользователь", пользователь); ' в консоли Type 'IUser' не удовлетворяет ограничению 'Документ'. Свойство 'get' отсутствует в типе 'IUser'. Тип «IUser» не удовлетворяет ограничению «Документ». Свойство '_id' отсутствует в типе 'IUser'. Мне нужно добавить все свойства из консоли в интерфейс?) –
Melixion
'export var userModel: mongoose.Model = mongoose.model (« Пользователь », Пользователь);' - эта проблема решения) thnks) –
Melixion
Пусть 'IUser' расширяет' mongoose.Document' и использует 'export var userModel: mongoose.Model = mongoose.model («Пользователь», Пользователь); ', он будет проверен typechecked. @Melixion –
Zen