Я использую loopback 3.0.0, и я недавно установил новый сервер, около недели назад.Для этого я запустил команду npm install
, поместив файл package.son.
Но в этих установленных файлах модуль node_modules / loopback / common / user.js изменился с серьезными изменениями.
Яйца:
Старый файл:
// Copyright IBM Corp. 2014,2016. All Rights Reserved.
User.validatePassword = function(plain) {
var err;
if (plain && typeof plain === 'string' && plain.length <= MAX_PASSWORD_LENGTH) {
return true;
}
if (plain.length > MAX_PASSWORD_LENGTH) {
err = new Error(g.f('Password too long: %s', plain));
err.code = 'PASSWORD_TOO_LONG';
} else {
err = new Error(g.f('Invalid password: %s', plain));
err.code = 'INVALID_PASSWORD';
}
err.statusCode = 422;
throw err;
};
Новый файл:
// Copyright IBM Corp. 2014,2018. All Rights Reserved.
User.validatePassword = function(plain) {
var err;
if (!plain || typeof plain !== 'string') {
err = new Error(g.f('Invalid password.'));
err.code = 'INVALID_PASSWORD';
err.statusCode = 422;
throw err;
}
// Bcrypt only supports up to 72 bytes; the rest is silently dropped.
var len = Buffer.byteLength(plain, 'utf8');
if (len > MAX_PASSWORD_LENGTH) {
err = new Error(g.f('The password entered was too long. Max length is %d (entered %d)',
MAX_PASSWORD_LENGTH, len));
err.code = 'PASSWORD_TOO_LONG';
err.statusCode = 422;
throw err;
}
};
Я разработал свой код с той же версией, но со старойкод, который они предоставили в той же версии (3.0.0.).Здесь вы можете видеть, что в новом коде нет оператора return , поэтому код бесконечно ждет возврата и истекает время ожидания.В обоих местах файл package.json содержит одну и ту же версию: "loopback": "^3.0.0"
Я надеюсь, что не рекомендуется копировать node_modules с нашего сервера разработки на рабочий сервер.
Так как мы можем справиться с такими проблемами?