在Node.JS浏览器代码

时间:2016-12-17 12:54:31

标签: javascript node.js browserify

我想在browserify的浏览器上使用node.js函数。在我的代码中,有一行如下:

var x = new Buffer('abc..', 'hex')

但是,这会导致错误ReferenceError: Buffer is not defined。我尝试安装[buffer-browserify][1]并将其包含在内:

var Buffer = require('buffer');

但现在我收到错误Error: Cannot find module 'buffer' ..

所以-how-我可以在浏览器javascript中使用Buffer类吗?

感谢您的帮助,

更新

为了使用browserify构建它,我创建了一个input.js文件,如下所示:

var Buffer = require('buffer');
console.log(Buffer);

我尝试使用browserify input.js -o output.js构建它,并在浏览器代码中包含output.js,它会打印Buffer变量。但是,当我尝试使用它时,我仍然得到相同的错误(ReferenceError: Buffer is not defined)。

2 个答案:

答案 0 :(得分:3)

这可以理解是令人困惑的,但这里是如何让它起作用,并带有一些解释性的子弹。

1)创建源javascript文件

// app.js file
var privateKey = new Buffer('abcdef00', 'hex')
console.log(privateKey.toString('hex'))
  • 不是你需要require('Buffer')来电。 Browserify将使一些node.js核心全局变量自动可用。由于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>

答案 1 :(得分:0)

你安装了吗?

npm安装缓冲区

var Buffer = require(&#39; buffer&#39;)。缓冲区