obnizのフォーラムは新しいシステムに移行しております。
新しいフォーラムはこちらになりますブラウザ開発で自作の外部パーツライブラリからBufferを使いたい。
-
JavaScriptの経験が浅く、調べてみましたが分からなかったので質問させてください。
自作のパーツライブラリを使いプログラムを動かそうとしています。Node.js上では正常に動くのですが、obnizCloudのブラウザからパーツライブラリを動かそうとするとReferenceError: Buffer is not definedというエラーが出てしまいます。
ブラウザ開発でパーツライブラリを作成してobniz.jsのBufferを使いたい場合どのようにすればよいでしょうか?
UnitVCamera.jsという自作のパーツライブラリをリポジトリに置いた状態でHTMLのヘッダで読み込んでいます。(jsファイルの読み込みはできているようです。)
参考にしたのはJpegSerialCamのindex.jsですが、下記のbase64を変換するところでエラーが出てしまいます。
arrayToBase64(array) { return Buffer.from(array).toString("base64"); }
https://github.com/obniz/obniz/blob/master/dist/src/parts/Camera/JpegSerialCam/index.js#L58-L60
-
@Takao-Akaki さん
Buffferはnode.jsでは使えるけれども、ブラウザからは使えないクラスになります。
そのため、ブラウザでBufferを使いたい場合は、互換品のライブラリを使用することでBufferとほぼ同等のことをすることができます。obniz.js内でも同じことをしていますが、obniz.jsで使っているものは外からBuffer互換品クラスにアクセスできるようになっていないので、別のものを使う必要があります。
自分がよく使っている互換品は、こちらの記事のものなので、試してみていただければと思います。
https://r17n.page/2019/11/26/node-buffer-in-browser-from-cdn/