Node.js 客户端节点模块没有';布朗化后我不工作

Node.js 客户端节点模块没有';布朗化后我不工作,node.js,autocomplete,client-side,browserify,node-modules,Node.js,Autocomplete,Client Side,Browserify,Node Modules,我正在尝试在node.js下开发一个应用程序。我需要一个名为autocomplete的模块,所以我做了 npm install -S autocomplete 这很有效packages.json已更新,所有内容都已更新 但我需要客户端的自动完成功能。这个问题最流行的解决方案似乎是使用browserify,所以我在全球范围内安装了它,它似乎可以工作 现在,根据我读到的所有内容,我应该能够: cd node_modules browserify autocomplete/index.js >

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

npm install -S autocomplete
这很有效
packages.json
已更新,所有内容都已更新

但我需要客户端的自动完成功能。这个问题最流行的解决方案似乎是使用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">
因为Autocomplete对象是在Autocomplete模块中定义的,这就是说明如何实例化它

但不幸的是,我的浏览器说,
Autocomplete没有定义
,所以它显然没有收到消息


上面的错误是什么?

结果是因为自动完成没有导出到全局范围。 在使用Autocomplete的文件中尝试此操作,例如在app.js中:

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


运行Browserify时,将其创建为独立模块:

browserify autocomplete/index.js --standalone Autocomplete > autocomplete.js
为了简单起见,我只是在这里改名——随便你叫什么都行

然后,当您在当前浏览器中运行此功能时,
new Autocomplete()
应该可用

编辑 虽然这是可行的,但该模块的文档缺失,并且您正在读取文档的模块似乎缺失


如果您可以使用已经为浏览器构建的类似功能,那么就不必再遇到这种问题。

感谢您的回复,但不幸的是,这对我来说不起作用,因为客户端没有定义“require”。这是另一个我知道很多人都在写的问题,但到目前为止我还没有找到解决办法!如何为客户端使用定义“require”?browserify将递归分析应用程序中的所有require()调用,以便构建一个捆绑包,您可以在单个标记中为浏览器提供服务。当代码必须位于客户端,而客户端不知道什么是“require”时,上述解决方案如何工作是吗?您指的是“要捆绑的模块名或文件。require()。可以选择使用冒号分隔符来设置目标。”?那句话不清楚。你知道它是如何使用的吗?谢谢你,这很有效!我有点吃惊,在我花了几个小时阅读有关browserify的文章时,我从来没有读过“--standalone”标志。我想通常不需要?您能告诉我“自动完成”与必要的“自动完成”有什么不同吗?任何时候模块只使用
模块。导出
时,浏览器都不知道该模块的名称。这就是
--standalone
为您所做的。我正在用同样的东西建一个图书馆。尽管我能够使用您的解决方案实例化对象,但调用对象上的方法会产生另一个错误。我实例化了
auto=new Autocomplete()
,但随后
auto.initialize(数据)
生成了
Uncaught类型错误:getInitialElements不是一个函数
。有什么想法吗?我不知道你想做什么,也不知道你是如何做的,但是如果你想在客户端使用这个库,这就是方法。无论其他错误是什么,我都需要更多的信息来帮助。用法是从模块页面上的示例代码中提取的。我只是插入了他们建议的代码,作为如何使用该模块的演示。失败的方法是autocomplete模块中的一个内部方法,因此browserify似乎没有向客户端发送所需的所有内容。谢谢你的帮助。
browserify app.js > bundle.js
mv bundle.js ../public/lib/js/
browserify autocomplete/index.js --standalone Autocomplete > autocomplete.js