[英]TypeError: Cannot read property 'name' of null NodeJs Request module
我想用請求模塊發送一個發布請求。 我的代碼是這樣剪斷的:
let formData = new FormData();
myArray.map((param, index) => {
formData.append(param.name, param.value)
})
formData.append('file', fs.createReadStream(file.location), { filename: file.name });
var options = {
'method': 'POST',
'url': 'https://shopify-video-production-core-originals.s3.amazonaws.com/',
'headers': {
},
formData: formData,
};
let requestProm = async () => {
return new Promise(resolve => {
request(options, function (error, response) {
if (error) {
logger.error("Video Upload Failed")
console.log(error)
} else {
logger.info("Video Upload Successfull");
resolve(response);
}
})
})
}
await requestProm()
但我收到一個錯誤:
類型錯誤:無法讀取 null 的屬性“名稱”
為什么我收到此錯誤? 請幫忙!
編輯:我控制了我的 formData。 沒有 null 名稱值。 我在互聯網上搜索,但找不到任何解決方案。 所以,我的 formData 是這樣的:
FormData {
_overheadLength: 1031,
_valueLength: 832,
_valuesToMeasure: [
ReadStream {
_readableState: [ReadableState],
_events: [Object: null prototype],
_eventsCount: 3,
_maxListeners: undefined,
path: '/Users/akasaa101/Desktop/vas-project/flickadoo-shop-service/src/utils/../../temp_files/e43c7a3a37c3703a5e31964942d0f8e09d0d11e3796905320c639356bced17f2-jYX0RlERyX.mp4',
fd: null,
flags: 'r',
mode: 438,
start: undefined,
end: Infinity,
autoClose: true,
pos: undefined,
bytesRead: 0,
closed: false,
emit: [Function (anonymous)],
[Symbol(kFs)]: [Object],
[Symbol(kCapture)]: false,
[Symbol(kIsPerformingIO)]: false
}
],
writable: false,
readable: true,
dataSize: 0,
maxDataSize: 2097152,
pauseStreams: true,
_released: false,
_streams: [
'----------------------------976490531239993416677931\r\n' +
'Content-Disposition: form-data; name="bucket"\r\n' +
'\r\n',
'shopify-video-production-core-originals',
[Function: bound ],
'----------------------------976490531239993416677931\r\n' +
'Content-Disposition: form-data; name="key"\r\n' +
'\r\n',
'c/o/v/99de9caee4c04e3e9b46e76d520868f0.mp4',
[Function: bound ],
'----------------------------976490531239993416677931\r\n' +
'Content-Disposition: form-data; name="policy"\r\n' +
'\r\n',
'eyJjb25kaXRpb25zIjpbWyJlcSIsIiRidWNrZXQiLCJzaG9waWZ5LXZpZGVvLXByb2R1Y3Rpb24tY29yZS1vcmlnaW5hbHMiXSxbImVxIiwiJGtleSIsImMvby92Lzk5ZGU5Y2FlZTRjMDRlM2U5YjQ2ZTc2ZDUyMDg2OGYwLm1wNCJdLFsiY29udGVudC1sZW5ndGgtcmFuZ2UiLDE5MjM0NTcsMTkyMzQ1N10sWyJlcSIsIiRjYWNoZS1jb250cm9sIiwicHVibGljLCBtYXgtYWdlPTMxNTM2MDAwIl0sWyJlcSIsIiR4LWFtei1jcmVkZW50aWFsIiwiQUtJQVlPSTVLWjYySlFDVzYzTFUvMjAyMjAxMTMvdXMtZWFzdC0xL3MzL2F3czRfcmVxdWVzdCJdLFsiZXEiLCIkeC1hbXotYWxnb3JpdGhtIiwiQVdTNC1ITUFDLVNIQTI1NiJdLFsiZXEiLCIkeC1hbXotZGF0ZSIsIjIwMjIwMTEzVDE1NTg0M1oiXV0sImV4cGlyYXRpb24iOiIyMDIyLTAxLTEzVDE2OjU4OjQzWiJ9',
[Function: bound ],
'----------------------------976490531239993416677931\r\n' +
'Content-Disposition: form-data; name="cache-control"\r\n' +
'\r\n',
'public, max-age=31536000',
[Function: bound ],
'----------------------------976490531239993416677931\r\n' +
'Content-Disposition: form-data; name="x-amz-signature"\r\n' +
'\r\n',
'9db058a03d62b3ad48c7427e44b60a7d88834b2d67cca5bda792b44d613ab493',
[Function: bound ],
'----------------------------976490531239993416677931\r\n' +
'Content-Disposition: form-data; name="x-amz-credential"\r\n' +
'\r\n',
'AKIAYOI5KZ62JQCW63LU/20220113/us-east-1/s3/aws4_request',
[Function: bound ],
'----------------------------976490531239993416677931\r\n' +
'Content-Disposition: form-data; name="x-amz-algorithm"\r\n' +
'\r\n',
'AWS4-HMAC-SHA256',
[Function: bound ],
'----------------------------976490531239993416677931\r\n' +
'Content-Disposition: form-data; name="x-amz-date"\r\n' +
'\r\n',
'20220113T155843Z',
[Function: bound ],
'----------------------------976490531239993416677931\r\n' +
'Content-Disposition: form-data; name="file"; filename="jYX0RlERyX.mp4"\r\n' +
'Content-Type: video/mp4\r\n' +
'\r\n',
DelayedStream {
source: [ReadStream],
dataSize: 0,
maxDataSize: Infinity,
pauseStream: true,
_maxDataSizeExceeded: false,
_released: false,
_bufferedEvents: [Array],
_events: [Object: null prototype],
_eventsCount: 1
},
[Function: bound ]
],
_currentStream: null,
_insideLoop: false,
_pendingNext: false,
_boundary: '--------------------------976490531239993416677931'
}
顯然,表單數據已經由請求承諾處理。 您可以將表單數據作為 object 傳遞。 檢查這個
檢查 myArray 元素的類型
Cannot read property '' of null
的屬性不存在。 您可以做的是記錄文件,然后檢查屬性“名稱”是否存在。 請記住:console.log() 是你在 nodejs 中最好的朋友(以及一般的編程)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.