我正在尝试让Angular.js应用程序使用Node.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
错误的原因当然是因为我直接在我的带有脚本标签的HTML文件中包含了这个controllers.js文件(所以来自Node.js的require() - 函数不可用)。
现在我的问题是:如何在controllers.js文件中访问模型文件(例如来自MY-PROJECT/models/waiter.js
)?
非常感谢提前!
答案 0 :(得分:1)
RequireJS看起来有你需要的东西。
答案 1 :(得分:0)
我做错了。因为我正在制作一个' realtime-app '(这是正确的名称吗?)并使用 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' ];
注意:我使用'猫'代替'服务员',只是为了让其他人更清楚。