Я думаю, что у вас такая же проблема, с которой я просто боролся. Эта проблема в вашем звонке. В нескольких учебниках вы вызываете метод .comparePassword()
из такой модели.
User.comparePassword(candidate, cb...)
Это не работает, потому что метод находится на schema
, а не на model
. Единственный способ, которым я смог вызвать метод, - найти этот экземпляр модели, используя стандартные методы запросов mongoose / mongo.
Вот важная часть моего промежуточного программного обеспечения паспорта:
passport.use(
new LocalStrategy({
usernameField: 'email'
},
function (email: string, password: string, done: any) {
User.findOne({ email: email }, function (err: Error, user: IUserModel) {
if (err) throw err;
if (!user) return done(null, false, { msg: 'unknown User' });
user.schema.methods.comparePassword(password, user.password, function (error: Error, isMatch: boolean) {
if (error) throw error;
if (!isMatch) return done(null, false, { msg: 'Invalid password' });
else {
console.log('it was a match'); // lost my $HÏT when I saw it
return done(null, user);
}
})
})
})
);
Итак, я использовал findOne({})
, чтобы получить экземпляр документа, а затем должен был получить доступ к методам схемы, вставив в свойства схемы документ user.schema.methods.comparePassword
. Несколько различий, которые я заметил:
instance
, а ваш метод static
. Я уверен, что существует аналогичная стратегия доступа к методу. comparePassword()
. возможно, это не обязательно для статики, но мне не удалось получить доступ к this.password
Перераспределение отладочных версий : отладочные версии приложений распространять не следует. Для работы им требуются отладочные версии DLL-библиотек времени выполнения (не представленные на обычных компьютерах, не принадлежащих разработчикам), а также они содержат много символов отладки, а в сборках .NET много метаинформации, которую, как правило, не следует отправлять другим , Отладочные библиотеки часто имеют дополнительные "d"
в своем имени файла: mfcm140d.dll
против mfcm140.dll
, например.
Hello WiX : С учетом вышеизложенного добавление отладочных dll в настройку ничем не отличается от добавления файлов релизов. Здесь приведен пример Hello World для WiX Visual Studio . Он должен показать вам основы компиляции рабочей установки с WiX и Visual Studio. Здесь также есть несколько советов по быстрому старту для WiX (много ссылок на примеры).
Некоторые ссылки :