【发布时间】:2013-10-04 06:31:06
【问题描述】:
我正在使用 Node.js、Express.js 和 Jade 组合编写应用程序。
我有文件client.js,它已加载到客户端。在该文件中,我有从其他 JavaScript 文件调用函数的代码。我的尝试是使用
var m = require('./messages');
为了加载messages.js 的内容(就像我在服务器端所做的那样),然后从该文件调用函数。但是,require 没有在客户端定义,它会抛出 Uncaught ReferenceError: require is not defined 形式的错误。
这些其他 JavaScript 文件也在客户端运行时加载,因为我将链接放在网页的标题处。所以客户端知道从这些其他文件中导出的所有功能。
如何从打开服务器套接字的主 client.js 文件中的这些其他 JavaScript 文件(例如 messages.js)调用这些函数?
【问题讨论】:
-
你为什么不直接
<script src="messages.js"></script>然后打电话给他们? -
也许这可以是一个解决方案,但还有另一件事让我担心。我还有一个名为“representation.js”的文件,用于抽象客户端和服务器共有的表示。在那个文件中,我也有 require 语句,在服务器端应该没问题,因为我正在运行 node.js。但是,在客户端这将是一个问题。你怎么看?
-
对于像我这样的新手(一周前甚至不会拼写“npm”!:-),了解 browserify 的
--require选项导致require()定义在客户端。见:lincolnloop.com/blog/speedy-browserifying-multiple-bundles -
@Sterling Archer...如果有 100 个这样的文件...我们不能继续在 HTML 中加载.........
标签: javascript node.js sockets express pug