浏览后客户端节点模块不工作

有人能告诉我我做错了什么吗?

我正在尝试在node.js下开发一个应用程序。 我需要一个名为autocomplete的模块,所以我做了

npm install -S autocomplete 

这工作得很好。 packages.json已经更新,一切。

但是我需要客户端的自动完成function。 这个问题最stream行的解决scheme似乎是使用browserify,所以我安装了全球,似乎工作。

根据我读过的所有内容,我应该能够:

 cd node_modules browserify autocomplete/index.js > bundle.js mv bundle.js ../public/lib/js/ 

然后在views / index.html我应该可以有

 <script src="lib/js/bundle.js"> 

最后我应该可以说

 var auto = new Autocomplete(); 

因为自动完成对象是在自动完成模块中定义的,这就是说明如何实例化它。

但不幸的是我的浏览器说Autocomplete is not defined所以显然没有得到消息。

上面怎么了?

当您运行Browserify时,将其作为standalone模块创build:

 browserify autocomplete/index.js --standalone Autocomplete > autocomplete.js 

我只是为了简单而改变这个名字 – 随心所欲地称呼它。

然后,当你在浏览器中运行它时, new Autocomplete()应该是可用的。

编辑虽然这是可行的,这个模块的文档丢失,并且你正在阅读文档的模块似乎丢失。

当你可以使用类似于已经为浏览器构build的typeahead东西时,就不需要去麻烦了。

所以事实certificate,因为自动完成不会被导出到全局范围。 在您使用自动完成的文件中尝试此操作,例如在app.js中:

 var Autocomplete = require('autocomplete'); var auto = new Autocomplete(); 

然后

 browserify app.js > bundle.js mv bundle.js ../public/lib/js/