Некоторые конечные точки API Nuxt 3 работают, а некоторые - не та же самая логика кода для клиента и сервераJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Некоторые конечные точки API Nuxt 3 работают, а некоторые - не та же самая логика кода для клиента и сервера

Сообщение Anonymous »

Я делаю полностью приложение для искусственного искусства, ради экспериментов и потому что мне нужно было что -то быстрое. Одной из функций является импорт файла CSV в базу данных SQLite (я использую BUN), а другая добавляет примечания в какую -то строку, но я сталкиваюсь с проблемой, одна конечная точка работает, а другая - нет (среди прочего, но я использую этот в качестве примера), если я импортирую файл CSV, я отлично работает, но примечания не достигает сервера, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что не так, что я не знаю, что не так, что не так, что не так, что я не знаю, что я не знаю, что не так, что я не знаю, что я не знаю, что я не знаю, что не так, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что я не знаю, что не так. GROK может решить это.
Структура API выглядит следующим образом: < /p>

server /api

Миграции

clear.delete.ts (это работает) < /li>
/>status.post.ts (работает) < /li>
< /ul>
< /li>
/> < /li>
Server /Middleware

logrequests.global.ts (журналы запрашивают только в конечных точках, которые говорят, что это работает) < /li>
< /ul>
< /li>
< /ul>
Я выложу. то же самоеlet fetchOptions: RequestInit = {
method: "POST",
headers: { "Content-Type": "application/json" }, // Always JSON now
};

try {
if (currentUploadType === "main") {
apiUrl = "/api/migrations";
payload = { data: dataToUpload };
} else {
// PBR upload
apiUrl = "/api/pbr_import";
payload = { data: dataToUpload };
}

fetchOptions.body = JSON.stringify(payload);
const payloadSize = fetchOptions.body.length;
console.debug(`[UploadModal] Sending JSON payload (${payloadSize} bytes) to ${apiUrl}`);

const response = await $fetch(apiUrl, fetchOptions);
< /code>
noteSmodal.vue
// THIS DOESN'T WORK
try {
const response = await $fetch(apiUrl, {
//
migrations.post.ts - эта конечная точка для importmodal.vue, которая работает < /p>
import { db, dbReady } from "@/server/db/index";
// Import Kysely specific types if needed for stricter validation, or use Partial
import type { WafMigracionTable } from "@/server/db/types";
import logger from "@/server/utils/logger";

// Define type for incoming records more strictly based on Kysely Insertable if desired
// This helps catch issues earlier if CSV parsing yields unexpected types
type IncomingRecord = Partial;

export default defineEventHandler(async (event) => {
const requestInfo = { url: event.node.req.url, method: event.node.req.method };
logger.info("[POST /api/migrations] Received request.", requestInfo);

try {
// Ensure DB setup is complete
await dbReady;
< /code>
pbrimport.post.ts - это конечная точка API для importmodal.vue, Else, который публикует /API /PBR_IMPORT < /p>
// File: server/api/pbr_import.post.ts

import { db, dbReady } from "@/server/db/index";
import type { NewFirewallPbr, FirewallPbrUpdate } from "@/server/db/types";
import logger from "@/server/utils/logger";
// Remove readRawBody import if present
// import { readRawBody } from 'h3';
// Remove papaparse import
// import Papa from 'papaparse';

// Type for expected data row within body.data
interface PbrDataRow {
node_ip?: string | null;
priority?: number | string | null;
waf?: string | null;
[key: string]: any; // Allow other columns from client parsing
}

export default defineEventHandler(async (event) => {
const requestInfo = { url: event.node.req.url, method: event.node.req.method };
// Log expecting JSON now
logger.info("[POST /api/pbr_import] Received request (expecting JSON body).", requestInfo);

try {
await dbReady;
< /code>
notes.put.ts - эта конечная точка предназначена для notesmodal.vue, эта не работает, даже логгер.import { db, dbReady } from "@/server/db/index";
import type { NewVsNotes, VsNotesUpdate } from "@/server/db/types";
import logger from "@/server/utils/logger";

interface RequestBody {
virtual_server: string;
notes: string | null; // Allow null to clear notes
}

export default defineEventHandler(async (event) => {
const requestInfo = { url: event.node.req.url, method: event.node.req.method };
logger.info("[PUT /api/migrations/notes] Received request.", requestInfo);

try {
await dbReady;
< /code>
Сначала я подумал, что с файлом CSV что -то не так, но я сделал отдельный скрипт, чтобы поместить данные в базу данных, и это работает нормально, я просто не знаю, как или почему работает, а остальное нет, может быть, что -то не так с иерархией файла или названием? Для каждого случая запрос сделан на клиенте, но он навсегда ожидает, и они даже не достигают промежуточного программного обеспечения, не говоря уже о конечной точке, но миграции. Post.ts работает нормально. Я попробовал Axios для получения, я также даже пытался понизить Nuxt и ничего.

Подробнее здесь: https://stackoverflow.com/questions/795 ... t-and-serv
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»