在Node.JS浏览器代码中找不到缓冲区
我想用browserify在浏览器上使用node.jsfunction。 在我的代码中,有一行如下:
var x = new Buffer('abc..', 'hex')
但是,这会导致错误ReferenceError: Buffer is not defined
。 我试图安装[buffer-browserify][1]
并像这样包含它:
var Buffer = require('buffer');
但现在我得到错误Error: Cannot find module 'buffer'
..
所以 – 如何 – 我可以使用浏览器JavaScript中的Buffer
类?
谢谢你的帮助,
更新:
为了用browserify
构build它,我创build了一个input.js
文件,如下所示:
var Buffer = require('buffer'); console.log(Buffer);
我试图通过browserify input.js -o output.js
来构build它,并在浏览器代码中包含了output.js
,它将打印Buffer
variables。 但是,当我尝试使用它时,仍然收到相同的错误( ReferenceError: Buffer is not defined
)。
这是可以理解的混乱,但这里是如何使它的工作,一些解释性的子弹。
1)创build你的源JavaScript文件
// app.js file var privateKey = new Buffer('abcdef00', 'hex') console.log(privateKey.toString('hex'))
- 不是你不需要一个
require('Buffer')
在这里调用。 Browserify会自动提供一些node.js核心全局variables。 由于Buffer
是npm中的一个全局(意思是你不需要调用require
来使用它),所以你可以直接使用它。 - 这将打印到控制台的关键
2)从命令行对其进行浏览
npm install --save browserify $(npm bin)/browserify app.js > app-browser.js
3)从HTML文件中引用app-browser.js
<!-- index.html --> <!DOCTYPE html> <html> <head> <title>Browserify buffer</title> </head> <body> <h1>Browserify Buffer</h1> <script src="app-browser.js"> </script> </body> </html>
你安装了吗?
npm安装缓冲区
var Buffer = require('buffer')。缓冲区