تابستون تو راهه. قبل از تغییر قیمت‌ها یادگیری رو شروع کن ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ Alirezas25
Down شدن سرور
جامعه نود جی اس ایجاد شده در ۱۹ اردیبهشت ۱۴۰۳

Salam Man Kod Haro Neveshtam Daghighan Mesl Video Vali Server Down Mishe Va In Khata Ro Be Man Mide To CMD

 

node:path:433
      validateString(arg, 'path');
      ^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined
    at Object.join (node:path:433:7)
    at AttachmentController.upload (D:\Node.Js\Kar-Ba-File-Ha-Dar-NodeJS\Ijad-Yek-File-Uploader\controllers\AttachmentController.js:14:34)
    at D:\Node.Js\Kar-Ba-File-Ha-Dar-NodeJS\Ijad-Yek-File-Uploader\server.js:37:61
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  code: 'ERR_INVALID_ARG_TYPE'
}
Node.js v20.12.2

سلام،

مقدار ورودی باید رشته باشه اما undefined دریافت شده. متغیری که به path ارسال کردی مقداری نداره و باعث این خطا شده.

فایل AttachmentController.js و کد upload رو چک کنید. خطای شما به این قسمت اشاره داره:

at AttachmentController.upload (D:\Node.Js\Kar-Ba-File-Ha-Dar-NodeJS\Ijad-Yek-File-Uploader\controllers\AttachmentController.js:14:34)

احتمالاً از تابع path.join() استفاده می‌کنید. مشکل اینجاست که یکی از آرگومان‌های این تابع undefined است. تمام مقادیر ورودی به path.join() مقادیر رشته‌ای معتبر باشد.

از مقادیر پیش فرض هم میتونی استفاده کنید.

در نهایت اگر نتونستید مشکل رو فیکس کنید، کدتون رو قرار بدید.

محسن موحد ۲۰ اردیبهشت ۱۴۰۳، ۲۲:۴۲

Man Bazam Check Kardam Vali Moshkelam Hal Nashod Moteasefane . In Kod File AttachmentController Hastesh 

"use strict";
const fs = require("fs");
const path = require("path");
module.exports = class AttachmentController {
  upload(data) {
    if (request().method == "GET") {
      return "attachment/upload_form.html";
    }
    if (data.files.file) {
      let tmpPath = data.files.file.path;
      let destinationPath = path.join(
        configs().uploadDir,
        data.files.file.name
      );
      if (!fs.existsSync(configs().uploadDir)) {
        fs.mkdirSync(configs().uploadDir);
      }
      var readStream = fs.createReadStream(tmpPath);
      var writeStream = fs.createWriteStream(destinationPath);
      readStream.pipe(writeStream);
      readStream.on("end", function () {
        fs.unlinkSync(tmpPath);
      });
      return "attachment/success_upload.html";
    }
  }
};
Alirezas25 ۲۵ اردیبهشت ۱۴۰۳، ۱۳:۰۱