我只是尝试使用MEAN.js向MongoDB提交查询。我想获得Mongo中存储的用户数量。 (已注册的所有用户的数量)。
我正在处理由学生编写的MEAN.js网站的大量混乱,该网站由数千个.js文件组成。我发现两个文件可能有关:
应用程序/控制器/用户/ users.authentication.server.controller.js
其中包含exports.signup = function(req, res) {...}
和exports.signin = function(req, res, next) {...}
等功能。
我补充说:
exports.userCount = function(req, res) {
// use mongoose to get the count of Users in the database
User.count(function(err, count) {
// if there is an error retrieving, send the error. nothing after res.send(err) will execute
if (err)
res.send(err)
res.json(count); // return return the count in JSON format
});
}
问题是,假设该功能甚至有效。和bby工作我的意思是返回' User' MongoDB中的记录,目前尚不清楚如何调用它。理想情况下,我想将它称为前端表面的50个文件。
还有另一个文件, public / modules / users / controllers / authentication.client.controller.js
此文件实际上是在前端迭代,可以在firefox或chrome中调试。
它具有$scope.signup = function() {...}
和$scope.signin = function() {...}
个功能。
我想阻止显示登录页面,或显示备用消息,具体取决于MongoDB中的用户记录数。
目前的问题是我无法在authentication.client.controller.js中获取计数,因为它不知道'用户'是。另一个问题是我不知道如何调用我在另一个文件中创建的函数exports.userCount
,从前端或者来自authentication.client.controller.js。
答案 0 :(得分:1)
不要将服务器控制器误认为是角度控制器。
在服务器控制器中,您应该有一个返回计数的函数,就像您说exports.userCount = function(req, res) {};
一样。但是,如果要调用该函数(API样式),则必须在用户路径文件中定义路径:
app.route('/my-route-that-retrieves-user-count').get(user.userCount);`
对路由/my-route-that-retrieves-user-count
发出GET请求后,系统会调用您的userCount
函数。
在angularjs方面,您可以在Authentication
控制器中制作GET请求(改编自angularjs docs):
$http({
method: 'GET',
url: '/my-route-that-retrieves-user-count'
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
// response will be the count of users
// you can assign that value to a scope and
// act accordingly to its value
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});