توضیحات

در این جلسه به بخش دوم ایجاد محصول در پروژه ادمین پنل از دوره آموزش ساخت فروشگاه اینترنتی با ناکست جی اس (nuxt.js) میپردازیم.


فروشگاه_اینترنتی vuejs ویو جی اس nuxt.js ناکست جی اس nuxt.js v3 ناکست جی اس ورژن 3

مدرس دوره علی شیخ
مدت دوره 18:59:37
تعداد ویدیو 87

وضعیت دوره : کامل شده
قیمت دوره : 799,000 719,000 تومان

نظرات ارزشمند شما:

برای ارسال نظر ابتدا باید وارد سایت شوید

  • سلام با استفاده از پکیج form-data اطلاعات به صورت آرایه خالی سمت لاراول ارسال میشه من حتی برای اطمینان فایل دانلودی جلسه را هم دانلود کردم اون هم این مشکل را داشت یعنی تا مرحله ی آخر خوب پیش میره ولی به لاراول ارسال نمیکنه اطلاعات را.سرچ هم کردم اما مشکل حل نشد.لطفا راهنمایی بفرمایید باید چیکار کنم.
    محتوای فایل create.post.js برای product

    import { readFiles } from 'h3-formidable';
    
    import FormData from 'form-data';
    import fs from 'fs';

    export default defineEventHandler(async event => {

    const { public: { apiBase } } = useRuntimeConfig();

    const token = getCookie(event, 'panel_token');

    try {
    const { fields, files } = await readFiles(event, {
    });

    const formData = new FormData();

    for (let index = 0; index < files.images.length; index++) {
    formData.append("images[]", fs.createReadStream(files.images[index].filepath));
    }

    formData.append("name", fields.name[0]);
    formData.append("category_id", fields.category_id[0]);
    formData.append("status", fields.status[0]);
    formData.append("price", fields.price[0]);
    formData.append("quantity", fields.quantity[0]);
    formData.append("sale_price", fields.sale_price[0]);
    formData.append("date_on_sale_from", fields.date_on_sale_from[0]);
    formData.append("date_on_sale_to", fields.date_on_sale_to[0]);
    formData.append("description", fields.description[0]);
    formData.append("primary_image", fs.createReadStream(files.primary_image[0].filepath));

    console.log(formData);

    const data = await $fetch(`${apiBase}/products`, {
    method: 'POST',
    body: formData,
    headers: {
    'Authorization': `Bearer ${token}`,
    }
    });

    return data;
    } catch (error) {
    return error;
    }
    })

    • سلام وقت بخیر.
      نباید مشکلی باشه اگه قبل ارسال چک کردید که دیتا بدرستی هست و ارسال میشه با postman هم چک کنید که api کار میکنه
      به هدر ها 'Accept': 'application/json' هم اضافه و تست کنید و ببینید ارور چی دریافت میکنید.

    • با postman کار می‌کنه اما در server nuxt تا اونجایی که formData را لاک گرفتم کار می‌کنه اما در مرحله آخر به api laravel ارسال نمیکنه

    • خوده سورس کد جلسه هم extract و خودش را اجرا کنید و بررسی کنید با توجه به ورژن پکیجی که داره و نصب میشه توی سورس کد

    • سلام مشکل حل شد.مشکل این بود که چون node من ورژن ۲۱ بود از پکیج form-data پشتیبانی نمی کرد و من به جای form-data از پکیج formdata-node
      استفاده کردم و مشکل حل شد.کد هم قرار میدم برای دوستان اگر به مشکل خوردند از پکیج زیر استفاده کنند.
      https://www.npmjs.com/package/formdata-node

      import { readFiles } from 'h3-formidable';
      
      import { FormData } from 'formdata-node';
      import { fileFromPath } from 'formdata-node/file-from-path';

      export default defineEventHandler(async event => {

      const { public: { apiBase } } = useRuntimeConfig();

      const token = getCookie(event, 'panel_token');

      try {
      const { fields, files } = await readFiles(event, {});

      const formData = new FormData();

      for (let index = 0; index < files.images.length; index++) {
      formData.append("images[]", await fileFromPath(files.images[index].filepath));
      }

      formData.append("name", fields.name[0]);
      formData.append("category_id", fields.category_id[0]);
      formData.append("status", fields.status[0]);
      formData.append("price", fields.price[0]);
      formData.append("quantity", fields.quantity[0]);
      formData.append("sale_price", fields.sale_price[0]);
      formData.append("date_on_sale_from", fields.date_on_sale_from[0]);
      formData.append("date_on_sale_to", fields.date_on_sale_to[0]);
      formData.append("description", fields.description[0]);
      formData.append("primary_image", await fileFromPath(files.primary_image[0].filepath));

      const data = await $fetch(`${apiBase}/products`, {
      method: 'POST',
      body: formData,
      headers: {
      'Accept': 'application/json',
      'Authorization': `Bearer ${token}`,
      }
      });

      return data;
      } catch (error) {
      return error;
      }
      })

  • سلام استاد وقت بخیر
    پکیج form-data رو نصب کردم ولی ی مشکلی داره , اطلاعات رو بصورت آرایه خالی واسه سرور لاراولی ارسال میکنه!
    کد های شما رو تست گرفتم بازم اطلاعات درست ارسال نشد

    • سلام وقت بخیر.
      مانند ویدیو مرحله به مرحله لاگ بگیرید ببینید دیتا به چه شکل هست اینکه اصلا دیتا سمت بک اند شما میاد که بعد از دریافت بخواهید ارسال کنید و ورژنی که توی دوره نصب شده را تست کنید. از طرفی کل و خوده سورس کد را تست کنسد که مشکلی نداره فقط باید لاگ گرفته شده تا مشکل پیدا بشه