如何在NodeJS中创建带有路径的文件对象?

Pou*_*opa 9 javascript file node.js

我想知道是否可以使用现有文件的路径在 NodeJS 中创建文件对象(名称、大小、数据等)?我知道这在客户端是可能的,但我看不到 NodeJS。

换句话说,我希望在 NodeJS 中使用相同的功能:

function srcToFile(src, fileName, mimeType){
    return (fetch(src)
        .then(function(res){return res.arrayBuffer();})
        .then(function(buf){return new File([buf], fileName, {type:mimeType});})
    );
}

srcToFile('/images/logo.png', 'logo.png', 'image/png')
.then(function(file){
    console.log(file);
});
Run Code Online (Sandbox Code Playgroud)

输出将类似于:

File {name: "logo.png", lastModified: 1491465000541, lastModifiedDate: Thu Apr 06 2017 09:50:00 GMT+0200 (Paris, Madrid (heure d’été)), webkitRelativePath: "", size: 49029, type:"image/png"…}
Run Code Online (Sandbox Code Playgroud)

Pou*_*opa 2

我搜索了文件系统示例和其他可能性,但一无所获。

所以我决定用 JSON 创建我自己的 File 对象。

  var imagePath = path.join('/images/logo.png', 'logo.png');
    
  if (fs.statSync(imagePath)) {
     var bitmap = fs.readFileSync(imagePath);
     var bufferImage = new Buffer(bitmap);
    
     Magic = mmm.Magic;
     var magic = new Magic(mmm.MAGIC_MIME_TYPE);
     magic.detectFile(imagePath, function(err, result) {
          if (err) throw err;
          datas = [{"buffer": bufferImage, "mimetype": result, "originalname": path.basename(imagePath)}];
          var JsonDatas= JSON.parse(JSON.stringify(datas));
          log.notice(JsonDatas);
     });
 }
Run Code Online (Sandbox Code Playgroud)

输出 :

{ 
  buffer:
  { 
    type: 'Buffer',
    data:
    [ 
      255,
      216,
      255
      ... 24908 more items,
      [length]: 25008 
    ] 
  },
  mimetype: 'image/png',
  originalname: 'logo.png' 
}
Run Code Online (Sandbox Code Playgroud)

我认为这可能不是最好的解决方案,但它给了我我想要的。如果您有更好的解决方案,欢迎您提出。