num=>num!=2
Ведь эта строка на много проще
var noTwo = nums.Where(x=>x != 2);
// или
var noTwo=from num in nums
where num!=2
select num;
Status Code
. Зачем вам передавать точное описание, что там оно не нашло, если вы можете просто передавать 404
и клиент пусть сам генерирует себе ошибку.return StatusCode
. Есть нормальные методы StatusResult
к которым относятся Ok()
, BadRequest()
и тот же NotFound()
. В эти методы можете передавать какие-то мета-данные если вам нужно. Либо можете использовать Response.Headers
. Но если вам прям очень-очень нужно впихнуть туда вот это вообще об ошибке, так что бы ваш сервер был на все руки мастер, можете сделать что-то типа такого:return NotFound(new { message = "Omg, Not Found!!!" });
JS
вытянуть ошибку? Я бы использовал просто ajax
:$.ajax({
url: '...',
method: 'get',
success: (response): {
let data = JSON.parse(response.responseText);
console.log(data.message); //Omg, Not Found!!!
}
});
Rebuild
вашего solution'а. Потом даблклик по проекту, в этом .csproj
файле ищите секцию ItemGroup
в которой будут ваши Protobuf
. К ним додаёте аттрибут ProtoRoot
, который (Для удобной работы) должен быть таким же как и пусть в аттрибуте Include
без указания названия файла .proto.proto
ваш другой .proto
, они должны быть хотя бы на одном уровне. Другими словами, вы можете импортировать только файлы, который находятся по архитектуре на том же уровне или ниже, потому что в import
запрещено использования символа точки и запятой. Это значит, что вы не сможете выйти на уровень выше if (context.Exception?.GetType() == typeof(SecurityTokenExpiredException))
{
IJwtService jwtService = context.HttpContext.RequestServices.GetService<IJwtService>();
if (context.Request.Cookies.TryGetValue("refresh-token", out string refreshToken))
{
Result<ClaimsPrincipal> principalResult = jwtService.ValidateAndDecodeToken(refreshToken);
if (!principalResult.IsSuccess || principalResult.Value == null)
{
return Task.CompletedTask;
}
Result<string> renewAccessTokenResult = jwtService.Encode(principalResult.Value);
if (!renewAccessTokenResult.IsSuccess && renewAccessTokenResult.ValidationErrors.Any())
{
return Task.CompletedTask;
}
context.Response.Cookies.Append("access-token", renewAccessTokenResult.Value);
context.Response.StatusCode = 200;
context.HttpContext.User = principalResult.Value;
context.Principal = principalResult.Value;
context.Success();
}
}
return Task.CompletedTask;
refresh token
и из него извлекаем ClaimPrincipal
, далее на его основе делаем access token
из того же сервиса и обрабатываем запрос, что бы он возвращал нужный статус. Как говорил Andrei SunnyPh , это допустимая практика (Спасибо) domain: *****
nserver: ns1.reg.ru.
nserver: ns2.reg.ru.
state: REGISTERED, DELEGATED, UNVERIFIED
person: Private Person
registrar: REGRU-RU
admin-contact: http://www.reg.ru/whois/admin_contact
created: 2024-02-11T05:41:55Z
paid-till: 2025-02-11T05:41:55Z
free-date: 2025-03-14
source: TCI
При запуске ide, сначала нужно собрать: shift + f10, следом каждый раз мне нужно нажимать ctrl + f5.
В гугле file watcher - там я могу указать только путь до .exe файла, это не то.
Если я правильно понимаю работу Next.js: компоненты без состояния рендерятся на сервере и могут индексироваться поисковыми роботами
А с состоянием - на стороне клиента, и роботы их не видят.
Однако в компоненте самой страницы ArticlePage у меня в любом случае будет использование useState. Значит ли это, что вся страница будет отрисовываться на клиенте?
И что поисковые роботы обойдут контент страницы стороной?
P.S. Вопрос, возможно, глупый, но я правда не понимаю...
Для чего нужен "timeout" в строке запроса?