![](/img/trans.png)
[英]Return variable value from request.get inside one function to another NODEJS express
[英]Use return value in a .map after performing request.get
所以基本上,出於安全考慮,我需要將圖像(來自 url)轉換為 base64。
到目前為止,我有兩個功能。 一個功能是將圖像從 url 轉換為 Base64,另一個是映射數據庫並將默認 url 替換為 base64 格式。 我錯過了拼圖的最后一塊,如何在第二個函數中使用第一個函數的返回值 - 我想用從 url 轉換為 base64 的結果替換第二個函數中的“test”。
public async convertUrlToBase64(): Promise<any> {
const request = require('request').defaults({ encoding: null });
await request.get(
'https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Ray_and_Maria_Stata_Center_%28MIT%29.JPG/2560px-Ray_and_Maria_Stata_Center_%28MIT%29.JPG',
function (
error: any,
response: { statusCode: number; headers: { [x: string]: string } },
body: ArrayBuffer | SharedArrayBuffer,
) {
return 'data:' + response.headers['content-type'] + ';base64,' + Buffer.from(body).toString('base64');
},
);
}
public mapUriToBase64(note: any): any {
return {
...note,
images: note.images.map((image: File) => {
return {
...image,
uri: 'test',
};
}),
};
}
}
您基本上需要用 Promise 包裝它,以便從您的調用中獲取返回值。
public convertUrlToBase64(): any {
const request = require('request').defaults({ encoding: null });
return new Promise(function (resolve, reject) {
request.get(
'https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Ray_and_Maria_Stata_Center_%28MIT%29.JPG/2560px-Ray_and_Maria_Stata_Center_%28MIT%29.JPG',
function (
error: any,
response: { statusCode: number; headers: { [x: string]: string } },
body: ArrayBuffer | SharedArrayBuffer,
) {
const data = 'data:' + response.headers['content-type'] + ';base64,' + Buffer.from(body).toString('base64');
resolve(data);
},
);
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.