我只是尝试使用 MEAN.js 向 MongoDB 提交查询。我想获取 Mongo 中存储的用户数量。 (所有已注册用户的数量)。
我正在处理一个由学生编写的 MEAN.js 网站,该网站非常困惑,由数千个 .js 文件组成。我发现两个文件可能相关:
app/controllers/users/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 工作我的意思是返回 MongoDB 中“用户”记录的计数,目前尚不清楚如何调用它。理想情况下,我想将其称为前端的 50 个文件。
还有另一个文件,public/modules/users/controllers/authentication.client.controller.js
这个文件实际上是在前端迭代的,可以在firefox或chrome中调试。
它具有 $scope.signup = function() {...}
和 $scope.signin = function() {...}
函数。
我想阻止显示登录页面,或显示备用消息,具体取决于 MongoDB 中的用户记录数。
当前的问题是我无法获取authentication.client.controller.js中的计数,因为它不知道“User”是什么。另一个问题是我不知道如何从前端或authentication.client.controller.js调用我在另一个文件中创建的函数exports.userCount
。
最佳答案
不要将服务器 Controller 与 Angular Controller 混淆。
在服务器 Controller 中,您应该有一个返回计数的函数,就像您所说的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
Controller 中发出类似 GET 请求(改编自 AngularJS 文档):
$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.
});
关于angularjs - MEAN.js : Get number of users stored in MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34143804/