以前有人遇到过这种情况吗?我在嵌套构建后使用 CI/CD 运行我的代码,它给了我错误:
node_modules/@types/superagent/index.d.ts:23:10 - error TS2305: Module '"buffer"' has no exported member 'Blob'. 23 import { Blob } from "buffer";
我不知道为什么?如果您有此问题的解决方案,请分享。
我从像这样的存储中获取缓冲区数据<Buffer 48 65 79 20 74 68 65 72 65 21>例如,我需要将它转换成一个blob。但是,当我尝试执行 toString() 来获取编码文本(就像浏览器呈现附件的方式一样)时,我将所有文本获取为 unicode 字符。我需要一个可以与 JSON 中的其他参数一起发送到 UI 的 blob,它可用于使用 HTML5 FileReader API 进行查看。请您帮个忙。
我尝试的是下面的内容,其中缓冲区引用第一行中的数据。
let binBuffer = Buffer.from(buffer,'binary').toString('utf8');
Run Code Online (Sandbox Code Playgroud) 能通过以下方式用javascript播放声音,
var snd = new Audio('sound.wav');
snd.play();
Run Code Online (Sandbox Code Playgroud)
这会播放所需的声音,但有时它会加载缓慢或甚至根本无法加载,所以我将声音编码在base 64中并尝试以这种方式播放.
var splash = {
prefix: "data:audio/wav;base64,",
sound: [ "*base64 string here*" ] };
var snd = new Audio(splash);
snd.play();
Run Code Online (Sandbox Code Playgroud)
但声音没有播放,有没有办法解决呢?
我正在使用reader.readAsArrayBuffer()将文件发送到node.js,以便我可以将其保存在/ public文件夹中.
reader.readAsArrayBuffer(event.currentTarget.files[0])
Run Code Online (Sandbox Code Playgroud)
读取完成后,调用Meteor.method()
reader.addEventListener("loadend", function(evt){
Meteor.call("saveFile", reader.result)
})
Run Code Online (Sandbox Code Playgroud)
meteor方法接收文件并将其保存到我的公共/文件夹.
saveFile:function(file){
var fs = Npm.require("fs")
fs.writeFile('../../../../../public/logo/jow.png', file, {encoding:"binary"}, function (err) {
console.log(err)
console.log("file saved")
});
}
Run Code Online (Sandbox Code Playgroud)
但问题是我从来没有得到正确的编码,当在/public/logo/jow.png中打开文件时,我得到以下消息:
jow.png can not be read, it may be damaged.
Run Code Online (Sandbox Code Playgroud)
但是当我将readAsArrayBuffer()更改为readAsBinaryString()时,它按预期工作,我可以打开图像.
有任何想法吗?
我正在尝试从 pdfmake 创建的 pdf 创建一个 blob,以便我可以将其发送到仅处理 blob 的远程 api。
这就是我获取 PDF 文件的方式:
var docDefinition = { content: 'This is an sample PDF printed with pdfMake' };
pdfDoc.pipe(fs.createWriteStream('./pdfs/test.pdf'));
pdfDoc.end();
Run Code Online (Sandbox Code Playgroud)
上面的代码行确实生成了可读的 pdf。
现在我怎样才能从那里得到一个斑点呢?我尝试了很多选项(使用 blob-stream 模块从流创建 blob、使用 fs 从文件创建、使用 b64toBlob 从 base64 字符串创建 blob),但所有这些选项在某些时候都需要使用构造函数 Blob即使我需要模块 blob,我总是会收到错误:
TypeError: Blob is not a constructor
Run Code Online (Sandbox Code Playgroud)
经过一番研究,我发现 Blob 构造函数似乎仅受客户端支持。
我发现的所有 npm 软件包似乎只能在客户端工作:blob-stream、blob、blob-util、b64toBlob 等。
那么,如何在 Node 上创建 blob 服务器端呢?
我不明白为什么几乎没有人还需要创建 blob 服务器端?我能找到的关于这个主题的唯一线索是这个。
根据该线程,显然:
这个问题的解决方案是创建一个可以在数组缓冲区和节点缓冲区之间进行转换的函数。:)
不幸的是,这对我没有多大帮助,因为我显然似乎缺乏一些重要的知识来理解这一点。
我正在尝试在 NodeJS 上使用 JSZip 创建一些 ZIP 文件,但我遇到了一个问题。
我正在使用 JSZip 提出的代码:
var JSZip = require('JSZip')
var zip = new JSZip()
zip.file("Hello.txt", "Hello World\n")
zip.generateAsync({type:"blob"}).then(function(content) {
//do things here
});
Run Code Online (Sandbox Code Playgroud)
目前代码在generateAsync上抛出错误
UnhandledPromiseRejectionWarning:错误:此平台不支持 blob
是否需要安装某些东西或者我在zip.file 中设置的数据应该采用某种格式?
I have tried to create a Blob in Node.js. First just this:
var b = new Blob(['hi', 'constructing', 'a', 'blob']);
Run Code Online (Sandbox Code Playgroud)
This fails with ReferenceError: Blob is not defined
然后,我尝试使用该blob模块(两行代码来自该模块的示例,请参阅https://www.npmjs.com/package/blob):
var Blob = require('blob');
var b = new Blob(['hi', 'constructing', 'a', 'blob']);
Run Code Online (Sandbox Code Playgroud)
这失败了 TypeError: Blob is not a constructor
我该怎么做?