1

(1 відповідей, залишених у C#, .NET)

?????

2

(1 відповідей, залишених у C#, .NET)

Допоможіть з рендерингом сторінки. Моя сторінка на фото 2 має виглядати так як на фото 1 в архіві. Я код з index.html (він теж є в архіві) переносив у файли папок Pages, Layout. Чомусь є тільки фміст файлу index.html, а razor файли не рендеряться.
Чомусь не відображаються всі елементи на сторінці. Сторінка має виглядати так => https://www.free-css.com/free-css-templ … 287/eflyer. Там є демо.

https://github.com/SashaMaksyutenko/eCo … mits/main/

3

(9 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Так, треба авторизуватись. Я вперше маю справу з Supabase. І передача файлів не працює

4

(9 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Остатачоний варіант додатку: https://github.com/SashaMaksyutenko/ReactChat2025.
Цікавить думка відносно цього додатку - що пофіксити, де є баги і на якому рівні написаний проект що і де можна було б покращити?  MONGO_URI=мої дані, TOKEN_KEY=мої дані, NODEMAILER_APP_PASSWORD=мої дані, NODEMAILER_USER=моя пошта, VITE_SUPABASE_URL=мої дані
VITE_SUPABASE_KEY=мої дані. Можу надати свої дані з конфігурації , якщо комусь буде цікаво потестити.

5

(9 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

https://replace.org.ua/uploads/images/10138/a416457a6a0586f408a587765ec70437.jpg

Ось ці ключі. А як тоді їх сховати? Можливо їх і не треба ховати?

6

(9 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Такі зміни я зробив:
1. Додав роут backend/routes/index.js ->

const router = require('express').Router();
const authRoute = require('./auth');
const userRoute = require('./user');
const configRoute = require('./config');
router.use('/auth', authRoute);
router.use('/user', userRoute);
router.use('/config', configRoute); // added this line
module.exports = router

2. створив config.js y backend/routes/config.js

const express = require('express');
const dotenv = require('dotenv');
dotenv.config({ path: './config.env' });
const router = express.Router();
router.get('/supabase', (req, res) => {
    res.json({
        supabaseUrl: process.env.SUPABASE_URL,
        supabaseKey: process.env.SUPABASE_KEY,
    });
});
module.exports = router; 

3. Додав секретні дані для supabase у config.env на backend

backend/config.env -> PORT=8000
API_PORT=5000
MONGO_URI=мої дані
TOKEN_KEY=мої дані
NODEMAILER_APP_PASSWORD=мої дані 
NODEMAILER_USER=sasha.maksyutenko@gmail.com
SUPABASE_URL=мої дані
SUPABASE_KEY=мої дані

4. зробив деякі зміни у supabase на frontend

import { createClient } from "@supabase/supabase-js";
let supabaseUrl = '';
let supabaseKey = '';
async function fetchConfig() {
    const response = await fetch('/api/config/supabase');
    const config = await response.json();
    supabaseUrl = config.supabaseUrl;
    supabaseKey = config.supabaseKey;
}
await fetchConfig();
const supabase = createClient(supabaseUrl, supabaseKey);
export const uploadToSupabase = async (file) => {
    const fileName = `${Date.now()}_${file.name}`;
    // Determine the MIME type of the file
    const contentType = file.type || "application/octet-stream"; // Default to binary stream if no type is found
    const { data, error } = await supabase.storage
        .from("chat")
        .upload(fileName, file, {
            upsert: false,
            cacheControl: "3600",
            contentType, // Set content type explicitly
        });
    if (error) {
        throw new Error("Error uploading file: " + error.message);
    }
    const urlData = supabase.storage.from("chat").getPublicUrl(fileName);
    return urlData?.data?.publicUrl; // Return the public URL of the uploaded file
};
export default supabase;

7

(9 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Роблю проект ReactChat. Є частина для BackEnd та FrontEnd
На фронтенді є файл з даними, які потрібно сховати - supabaseUrl, supabaseKey.

/* eslint-disable no-unused-vars */
import { createClient } from "@supabase/supabase-js";
const supabaseUrl = "мій url";
const supabaseKey = "мій секретний ключ";
const supabase = createClient(supabaseUrl, supabaseKey);
export const uploadToSupabase = async (file) => {
    const fileName = `${Date.now()}_${file.name}`;
    // Determine the MIME type of the file
    const contentType = file.type || "application/octet-stream"; // Default to binary stream if no type is found
    const { data, error } = await supabase.storage
        .from("chat")
        .upload(fileName, file, {
            upsert: false,
            cacheControl: "3600",
            contentType, // Set content type explicitly
        });
    if (error) {
        throw new Error("Error uploading file: " + error.message);
    }
    const urlData = supabase.storage.from("chat").getPublicUrl(fileName);
    return urlData?.data?.publicUrl; // Return the public URL of the uploaded file
};

Як правильно зробити? На беку є config.env, де зберігаються всі секретні дані. Потрібно занести секретні дані supabase у цей файл. А що далі? Як потім ці дані витягнути з бекенду і використати у фронтенді у файлі supabase.js? Чи можна підключати dotenv і використовувати config.env на фронтенді? Я так розумію що на фронті цього краще не робити і це не правильно.

це дані з config.env на backend:

PORT=8000
API_PORT=5000
MONGO_URI=мої дані
TOKEN_KEY=мої дані
NODEMAILER_APP_PASSWORD=мої дані
NODEMAILER_USER=мої дані

Тут мій проект -> https://github.com/SashaMaksyutenko/ReactChat2025

8

(3 відповідей, залишених у C#, .NET)

ось детальніші логи:

      Hosting starting
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5007
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /Users/sashamaksyutenkoadmin/Documents/BlazorApp2024/BlazorApp2024
dbug: Microsoft.Extensions.Hosting.Internal.Host[2]
      Hosting started
warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3]
      Failed to determine the https port for redirect.
dbug: Microsoft.EntityFrameworkCore.Infrastructure[10401]
      An 'IServiceProvider' was created for internal use by Entity Framework.
dbug: Microsoft.EntityFrameworkCore.Model[10601]
      The index {'UserId'} was not created on entity type 'IdentityUserRole<string>' as the properties are already covered by the index {'UserId', 'RoleId'}.
dbug: Microsoft.EntityFrameworkCore.Model[10601]
      The index {'UserId'} was not created on entity type 'IdentityUserToken<string>' as the properties are already covered by the index {'UserId', 'LoginProvider', 'Name'}.
dbug: Microsoft.EntityFrameworkCore.Infrastructure[10403]
      Entity Framework Core 9.0.0 initialized 'ApplicationDbContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer:9.0.0' with options: EngineType=SqlServer 
dbug: Microsoft.EntityFrameworkCore.Query[10111]
      Compiling query expression: 
      'DbSet<ShoppingCart>()
          .Where(u => u.UserId == __userId_0)'
dbug: Microsoft.EntityFrameworkCore.Query[10107]
      Generated query execution expression: 
      'queryContext => SingleQueryingEnumerable.Create<ShoppingCart>(
          relationalQueryContext: (RelationalQueryContext)queryContext, 
          relationalCommandResolver: parameters => [LIFTABLE Constant: RelationalCommandCache.QueryExpression(
              Projection Mapping:
                  EmptyProjectionMember -> Dictionary<IProperty, int> { [Property: ShoppingCart.Id (int) Required PK AfterSave:Throw ValueGenerated.OnAdd, 0], [Property: ShoppingCart.Count (int) Required, 1], [Property: ShoppingCart.ProductId (int) Required FK Index, 2], [Property: ShoppingCart.UserId (string) FK Index, 3] }
              SELECT s.Id, s.Count, s.ProductId, s.UserId
              FROM ShoppingCart AS s
              WHERE s.UserId == @__userId_0) | Resolver: c => new RelationalCommandCache(
              c.Dependencies.MemoryCache, 
              c.RelationalDependencies.QuerySqlGeneratorFactory, 
              c.RelationalDependencies.RelationalParameterBasedSqlProcessorFactory, 
              Projection Mapping:
                  EmptyProjectionMember -> Dictionary<IProperty, int> { [Property: ShoppingCart.Id (int) Required PK AfterSave:Throw ValueGenerated.OnAdd, 0], [Property: ShoppingCart.Count (int) Required, 1], [Property: ShoppingCart.ProductId (int) Required FK Index, 2], [Property: ShoppingCart.UserId (string) FK Index, 3] }
              SELECT s.Id, s.Count, s.ProductId, s.UserId
              FROM ShoppingCart AS s
              WHERE s.UserId == @__userId_0, 
              False, 
              new HashSet<string>(
                  new string[]{ }, 
                  StringComparer.Ordinal
              )
          )].GetRelationalCommandTemplate(parameters), 
          readerColumns: null, 
          shaper: (queryContext, dataReader, resultContext, resultCoordinator) => 
          {
              ShoppingCart entity;
              entity = 
              {
                  MaterializationContext materializationContext1;
                  IEntityType entityType1;
                  ShoppingCart instance1;
                  InternalEntityEntry entry1;
                  bool hasNullKey1;
                  materializationContext1 = new MaterializationContext(
                      [LIFTABLE Constant: ValueBuffer | Resolver: _ => (object)ValueBuffer.Empty], 
                      queryContext.Context
                  );
                  instance1 = default(ShoppingCart);
                  entry1 = queryContext.TryGetEntry(
                      key: [LIFTABLE Constant: Key: ShoppingCart.Id PK | Resolver: c => c.Dependencies.Model.FindEntityType("BlazorApp1.Data.ShoppingCart").FindPrimaryKey()], 
                      keyValues: new object[]{ (object)dataReader.GetInt32(0) }, 
                      throwOnNullKey: True, 
                      hasNullKey: hasNullKey1);
                  !(hasNullKey1) ? entry1 != default(InternalEntityEntry) ? 
                  {
                      entityType1 = entry1.EntityType;
                      return instance1 = (ShoppingCart)entry1.Entity;
                  } : 
                  {
                      ISnapshot shadowSnapshot1;
                      shadowSnapshot1 = [LIFTABLE Constant: Snapshot | Resolver: _ => Snapshot.Empty];
                      entityType1 = [LIFTABLE Constant: EntityType: ShoppingCart | Resolver: namelessParameter{0} => namelessParameter{0}.Dependencies.Model.FindEntityType("BlazorApp1.Data.ShoppingCart")];
                      instance1 = switch (entityType1)
                      {
                          case [LIFTABLE Constant: EntityType: ShoppingCart | Resolver: namelessParameter{1} => namelessParameter{1}.Dependencies.Model.FindEntityType("BlazorApp1.Data.ShoppingCart")]: 
                              {
                                  return 
                                  {
                                      ShoppingCart instance;
                                      instance = new ShoppingCart();
                                      instance.<Id>k__BackingField = dataReader.GetInt32(0);
                                      instance.<Count>k__BackingField = dataReader.GetInt32(1);
                                      instance.<ProductId>k__BackingField = dataReader.GetInt32(2);
                                      instance.<UserId>k__BackingField = dataReader.IsDBNull(3) ? default(string) : dataReader.GetString(3);
                                      (instance is IInjectableService) ? ((IInjectableService)instance).Injected(
                                          context: materializationContext1.Context, 
                                          entity: instance, 
                                          queryTrackingBehavior: TrackAll, 
                                          structuralType: [LIFTABLE Constant: EntityType: ShoppingCart | Resolver: namelessParameter{2} => namelessParameter{2}.Dependencies.Model.FindEntityType("BlazorApp1.Data.ShoppingCart")]) : default(void);
                                      return instance;
                                  }}
                          default: 
                              default(ShoppingCart)
                      }
                      ;
                      entry1 = entityType1 == default(IEntityType) ? default(InternalEntityEntry) : queryContext.StartTracking(
                          entityType: entityType1, 
                          entity: instance1, 
                          snapshot: shadowSnapshot1);
                      return instance1;
                  } : default(void);
                  return instance1;
              };
              return entity;
          }, 
          contextType: BlazorApp1.Data.ApplicationDbContext, 
          standAloneStateManager: False, 
          detailedErrorsEnabled: False, 
          threadSafetyChecksEnabled: True)'
dbug: Microsoft.EntityFrameworkCore.Database.Connection[20005]
      Creating DbConnection.
dbug: Microsoft.EntityFrameworkCore.Database.Connection[20006]
      Created DbConnection. (12ms).
dbug: Microsoft.EntityFrameworkCore.Database.Connection[20000]
      Opening connection to database 'YumBlazor' on server 'localhost,1433'.
dbug: Microsoft.EntityFrameworkCore.Infrastructure[10407]
      'ApplicationDbContext' disposed.
fail: Microsoft.EntityFrameworkCore.Database.Connection[20004]
      An error occurred using the connection to database 'YumBlazor' on server 'localhost,1433'.
dbug: Microsoft.EntityFrameworkCore.Database.Connection[20007]
      Disposing connection to database 'YumBlazor' on server 'localhost,1433'.
dbug: Microsoft.EntityFrameworkCore.Database.Connection[20008]
      Disposed connection to database '' on server '' (0ms).
dbug: Microsoft.EntityFrameworkCore.Query[10115]
      A query was canceled for context type 'BlazorApp1.Data.ApplicationDbContext'.
Error in GetTotalCartCartCountAsync: A task was canceled.
^Cinfo: Microsoft.Hosting.Lifetime[0]
      Application is shutting down...
dbug: Microsoft.Extensions.Hosting.Internal.Host[3]
      Hosting stopping
dbug: Microsoft.Extensions.Hosting.Internal.Host[4]
      Hosting stopped
  BlazorApp2024 git:(main)  

9

(3 відповідей, залишених у C#, .NET)

?????

10

(3 відповідей, залишених у C#, .NET)

https://replace.org.ua/uploads/images/10138/358a717f7d8f1b7fe8ea233b754cedf2.jpg

Тільки спінер при завантаженні

11

(3 відповідей, залишених у C#, .NET)

Створив blazor server app with individual authentication type. Чомусь під час запуску додатку видає помилку підключення до БД.

/Users/sashamaksyutenkoadmin/Documents/BlazorApp2024/BlazorApp2024/bin/Debug/net9.0/BlazorApp1
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5007
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /Users/sashamaksyutenkoadmin/Documents/BlazorApp2024/BlazorApp2024
fail: Microsoft.EntityFrameworkCore.Database.Connection[20004]
      An error occurred using the connection to database 'YumBlazor' on server 'localhost,1433'.

Коли реєструю нового користувача то він додається до AspNetUsers в БД, але сторінка не грузиться. Проблема не в стрічці підключення швидше всього.
https://github.com/SashaMaksyutenko/BlazorApp2024

12

(0 відповідей, залишених у C#, .NET)

Можливо тут є розробники, які юзають МакОс?
Роблю проект на Блазор - blazor server app,authentication type- individual accounts
На Макбуці  по туторіалу і помітив що структура проекту на Мак і на Віндовс трохи відрізняється. На Мак трохи структура спрощена і урізана. Наприклад мені треба робити зміни у файлі Register.razor, але у мене його немає. І не знаю як бути в цій ситуації. Це мій проект - https://github.com/SashaMaksyutenko/BlazorApp2024. Це проект з туторіалу - https://github.com/bhrugen/YumBlazor (Section13 - Redesign register.) не знаю що і де робити щоб не поламати проект.
Підкажіть як вирішити дану проблему будь-ласка.

13

(0 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Привіт
Хто знає як виправити дану помилку у файлі index.js у папці store?

https://github.com/SashaMaksyutenko/payShopReact

14

(2 відповідей, залишених у Web-сервери)

Хто користувався даним сервісом для роботи з поштою?
https://sendgrid.com
Забув пароль...Форма з відновленням паролю не прийшла на мою пошту. Через який час буде відповідь?

??????

коли натискаю кнопку search в розділі characters додатку і в інпуті вводжу для прикладу Rick і натискаю search то вибиває помилку
Ось мій репозиторій:

https://github.com/SashaMaksyutenko/RickAndMortyIOSApp
Можливо хтось підкаже як її виправити. Буду дуже вдячний.

2023-06-20 21:27:47.054256+0300 RickAndMorty[80533:7606900] *** Assertion failure in -[UIApplication _performAfterCATransactionCommitsWithLegacyRunloopObserverBasedTiming:block:], UIApplication.m:3351
2023-06-20 21:27:47.090145+0300 RickAndMorty[80533:7606900] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Call must be made on main thread'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000010616a330 __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x00000001051a5274 objc_exception_throw + 56
    2   Foundation                          0x00000001084ec9b4 _userInfoForFileAndLine + 0
    3   UIKitCore                           0x000000012df39e2c -[UIApplication _performAfterCATransactionCommitsWithLegacyRunloopObserverBasedTiming:block:] + 380
    4   UIKitCore                           0x000000012da1d3a0 -[UIFocusSystem _focusEnvironmentWillBecomeInvisible:] + 124
    5   UIKitCore                           0x000000012e3d07cc -[UIView(Rendering) setHidden:] + 444
    6   UIKit                               0x0000000148c64868 -[UIViewAccessibility setHidden:] + 72
    7   RickAndMorty                        0x0000000104ad727c $s12RickAndMorty19RMSearchResultsViewC015setUpCollectionF033_3E109A3D89FDB55CDF0AAF9F712DC783LLyyF + 72
    8   RickAndMorty                        0x0000000104ad717c $s12RickAndMorty19RMSearchResultsViewC07processF5Model33_3E109A3D89FDB55CDF0AAF9F712DC783LLyyF + 296
    9   RickAndMorty                        0x0000000104ad6148 $s12RickAndMorty19RMSearchResultsViewC9viewModel33_3E109A3D89FDB55CDF0AAF9F712DC783LLAA0d6ResultfH0OSgvW + 28
    10  RickAndMorty                        0x0000000104ad6248 $s12RickAndMorty19RMSearchResultsViewC9viewModel33_3E109A3D89FDB55CDF0AAF9F712DC783LLAA0d6ResultfH0OSgvs + 132
    11  RickAndMorty                        0x0000000104ad7b40 $s12RickAndMorty19RMSearchResultsViewC9configure4withyAA0d6ResultF5ModelO_tF + 64
    12  RickAndMorty                        0x0000000104b0452c $s12RickAndMorty12RMSearchViewC13setUpHandlers33_0271459AF63E074C028F4E69B1A73B35LL9viewModelyAA0deeR0C_tFyAA0d6ResulteR0OcfU0_ + 372
    13  RickAndMorty                        0x0000000104ad01b4 $s12RickAndMorty012RMSearchViewE5ModelC20processSearchResults33_83F2D7930585F215B1FC902CD1CCB9E7LL5modelySe_SEp_tF + 2064
    14  RickAndMorty                        0x0000000104acf8b0 $s12RickAndMorty012RMSearchViewE5ModelC17makeSearchAPICall33_83F2D7930585F215B1FC902CD1CCB9E7LL_7requestyxm_AA9RMRequestCtSeRzSERzlFys6ResultOyxs5Error_pGcfU_ + 476
    15  RickAndMorty                        0x0000000104b1015c $s12RickAndMorty9RMServiceC7execute_9expecting10completionyAA9RMRequestC_xmys6ResultOyxs5Error_pGctSeRzSERzlFy10Foundation4DataVSg_So13NSURLResponseCSgsAK_pSgtYbcfU_ + 1232
    16  RickAndMorty                        0x0000000104b1042c $s12RickAndMorty9RMServiceC7execute_9expecting10completionyAA9RMRequestC_xmys6ResultOyxs5Error_pGctSeRzSERzlFy10Foundation4DataVSg_So13NSURLResponseCSgsAK_pSgtYbcfU_TA + 72
    17  RickAndMorty                        0x0000000104afb3f0 $s10Foundation4DataVSgSo13NSURLResponseCSgs5Error_pSgIeghggg_So6NSDataCSgAGSo7NSErrorCSgIeyBhyyy_TR + 280
    18  CFNetwork                           0x00000001099a2cf8 CFNetwork + 27896
    19  CFNetwork                           0x00000001099be170 _CFHTTPMessageSetResponseProxyURL + 14628
    20  libdispatch.dylib                   0x0000000107560528 _dispatch_call_block_and_release + 24
    21  libdispatch.dylib                   0x0000000107561d50 _dispatch_client_callout + 16
    22  libdispatch.dylib                   0x000000010756a014 _dispatch_lane_serial_drain + 924
    23  libdispatch.dylib                   0x000000010756ada4 _dispatch_lane_invoke + 480
    24  libdispatch.dylib                   0x0000000107578b74 _dispatch_workloop_worker_thread + 1716
    25  libsystem_pthread.dylib             0x00000001b1834878 _pthread_wqthread + 284
    26  libsystem_pthread.dylib             0x00000001b183363c start_wqthread + 8
)
libc++abi: terminating due to uncaught exception of type NSException
(lldb) 

17

(5 відповідей, залишених у Web-сервери)

Добрий день
Помилки щось типу цих що у даному посиланні, але коли роблю journal since 5 minutes то логи в терміналі не показують помилок і в браузері елементи не відображаються. Проблема мабуть у підключенні до БД.
https://stackoverflow.com/questions/738 … s-writable

18

(5 відповідей, залишених у Web-сервери)

Виникла проблема при розгортанні додатку на Linux сервері з допомогою хостингу digital ocean.
Чи є тут люди які з ним працювали?

отже
- git reset HEAD~4 --hard
- git add .
- git commit -m 'commit12'

тобто послідовність така:
- створити гілку (наприклад master2) і зробити в ній коміт з усіма останніми змінами ;
- перейти в мастер і видалити 4 останні коміти;
- злити дві гілки в одну;
- зробити коміт
Якщо я правильно зрозумів.
Як видаляти коміт - git revert назва коміту -> git commit -m 'commit 12' -> git push origin master?
І як зливати дві гілки в одну? Цього робити ще не доводилось