在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 ,它将打印Buffervariables。 但是,当我尝试使用它时,仍然收到相同的错误( 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')。缓冲区