在Node.js之外使用require()

我正在试验一个使用Node.js的Angular.js应用程序。

目前我在MY-PROJECT/public/js/controllers.js文件中有下面的代码

 function LoginController( $scope ) { // fetch waiters var Waiter = require( '../models/waiter.js' ); } LoginController.$inject = ['$scope']; 

正如你所看到的,我使用require()来访问模型文件。 但是好像require()函数在这个文件/文件夹中是不可访问的。

当我访问页面时,我在控制台中得到的错误是:

ReferenceError:require没有定义

错误的原因是肯定的,因为我直接将这个controllers.js文件包含在带有脚本标签的HTML文件中(所以Node.js中的require()函数不可用)。

现在我的问题是:如何访问controllers.js文件中的模型文件(例如,从MY-PROJECT/models/waiter.js )?

提前谢谢了!

RequireJS看起来像它有你所需要的。

我所做的一切都是错误的。 因为我正在制作一个“ 实时应用程序 ”(是否是正确的名称?)并使用Socket.io ,它的工作方式不同。

在客户端控制器中,我向服务器发送消息来请求数据。 服务器获取数据并将其发送回客户端。

所以在客户端,我实际上不需要模型,因为我从服务器获取JSON格式的数据。

这是我解决它的方法,可能对别人有用:

 /** * Login controller */ function LoginController( $scope, socket ) { // listen to server when it sends you the cats socket.on( 'here-are-all-the-cats', function ( cats ) { $scope.cats = cats; }); // send message to the server, to request the waiters socket.emit( 'i-want-all-the-cats' ); } WaiterController.$inject = [ '$scope', 'socket' ]; 

注:我使用“猫”而不是“服务员”,只是为了让别人更清楚。