User authorization failed: no access_token passed.
– не авторизовать пользователя, выполняющего запрос по причине отсутствия access_token'а (ключа доступа).v
. Сейчас актуальная версия 5.74
https://api.vk.com/method/friends.get?user_id=babegone&v=5.74&access_token=supersecretsupersecret
try-catch
в критичных местах - особенно на операциях ввода/вывода. Так же следует отловить конкретно эту ошибку и выяснить где именно она возникает. Есть возможность отлова глобальных ошибок: process.on('uncaughtException', (err, origin) => { ... });
const transporter = nodemailer.createTransport({
host: "smtp.yandex.ru",
port: 465,
secure: true, // true for 465, false for other ports
auth: {
user: "user", // generated ethereal user
pass: "pass" // generated ethereal password
}
});
async function bootstrap() {
const app = await NestFactory.create(AppModule, { cors: true });
// We'll start by binding ValidationPipe at the application level,
// thus ensuring all endpoints are protected from receiving incorrect data.
app.useGlobalPipes(
new ValidationPipe({
exceptionFactory: (errors: ValidationError[]) => {
return new BadRequestException(formatErrorsHelper(errors));
},
}),
);
// swagger
const config = new DocumentBuilder()
.setTitle('Salary365 manager API')
.setDescription('Salary365 manager API description')
.setVersion('1.0')
.addBearerAuth(
{ type: 'http', scheme: 'bearer', bearerFormat: 'JWT' },
'access-token',
)
.build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('/api', app, document);
// start listen and serve port from env
await app.listen(process.env.APP_PORT);
}
import { ValidationError } from '@nestjs/common/interfaces/external/validation-error.interface';
export const formatErrorsHelper = (errors: ValidationError[]) =>
errors.map((item) => ({ [item.property]: Object.values(item.constraints) }));
* main 0e02250 [origin/main] v.01
origin https://github.com/xxx/xxx.git (fetch)
origin https://github.com/xxx/xxx.git (push)
export const can = (state) => (perm) => this.loggedIn(state) && state.authUser.abilities.includes(perm);
export const canAny = (state) => (perms) => perms.some(x => this.can(state)(x));
v-if="can('chat.mute')"
const numb = 1234567;
const numbFmt = new Intl.NumberFormat('ru-RU').format(numb);
console.log('Отформатированное число: ' + numbFmt); // 1 234 567
const numb = 1234567;
const numbFmt = numb.toLocaleString('ru-RU');
console.log('Отформатированное число: ' + numbFmt); // 1 234 567
// аякс запрос
.catch((error)=> {
this.errors = error.response.data.errors;
});
errors_count: function () {
return Object.keys(this.errors).length;
},
php artisan make:model Localization
protected $table = 'localization';
public function lozalizable()
{
return $this->morphTo();
}
public function lozalization(){
return $this->morphOne('App\Localization', 'lozalizable');
}
Schema::create('localization', function (Blueprint $table) {
$table->increments('id');
$table->string('field');
$table->string('language');
$table->string('value');
$table->string('lozalizable_type');
$table->integer('lozalizable_id');
$table->timestamps();
});
$article = Article::create($Atricle);
$localization = new Localization;
$localization->language = 'en';
$localization->field = 'content';
$localization->value = 'Znachenye na english yazike';
$article->localization()->save($localization); //привязываем к свежесозданному объекту Article новую локализацию
public function scopeGetLocalize($language, $field){
return $this->localization()->where(['language' => $language, 'field' => $field])-> firstOrFail()->value;
}
$article->getLocalize('en', 'title')