Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从服务器控制器访问MEANjs中的API端点_Javascript_Node.js_Api_Mean Stack_Meanjs - Fatal编程技术网

Javascript 从服务器控制器访问MEANjs中的API端点

Javascript 从服务器控制器访问MEANjs中的API端点,javascript,node.js,api,mean-stack,meanjs,Javascript,Node.js,Api,Mean Stack,Meanjs,所以我有一个问题,我正在处理我的应用程序中的“following”特性。重要的是,我有两种型号: 遵循和通知 当我点击前端的follow按钮时,我从follow.client.controller.js运行函数,该函数将发布到API端点/API/follows,该端点对应于follow.server.controller.js,然后执行follows模型上的更新操作-简单。好吧,这就是它的工作原理(对我来说也是如此) 但是在follows.server.controller.js中,我还想在/A

所以我有一个问题,我正在处理我的应用程序中的“following”特性。重要的是,我有两种型号:

遵循
通知

当我点击前端的follow按钮时,我从
follow.client.controller.js
运行函数,该函数将发布到API端点
/API/follows
,该端点对应于
follow.server.controller.js
,然后执行
follows
模型上的更新操作-简单。好吧,这就是它的工作原理(对我来说也是如此)

但是在
follows.server.controller.js
中,我还想在
/API/notifications
处调用post-to-API端点,该端点对应于
notifications.server.controller.js
,但我找不到正确的方法来实现这一点。任何帮助都将不胜感激


我不想从前端再次调用来添加通知,因为它应该是自动的=如果用户开始跟踪某人,信息将同时保存在两个模型中。

您可以在服务器路由中添加中间件

app.route('/api/follows')
    .post(notification.firstFunction, follows.secondFunction);
现在在控件中添加2个方法。首先对db进行调用,并将某个结果的数据添加到请求对象,请求对象将转发给第二个方法

exports.firstFunction= function(req, res, next) {

    Notification.doSometing({
        }).exec(function(err, result) {
            if (err) return next(err);
            req.yourValueToPassForward = result
            next(); // <-- important
        });

};

exports.secondFunction= function(req, res) {
    //...
};

谢谢你,迈克。第一个解决方案是我需要的,我对MEANjs还是新手,所以你能告诉我这种知识的来源是什么吗?你有关于MEANjs的书/文章可以推荐吗?或者这只是express/node的文档?(当然,我不是要你去谷歌爬网,只是想知道你是否有一些fav)meanstack没有很好的知识基础。您必须识别代码的哪些部分属于哪种技术。后端控制器和模型使用Mongoosejs库,该库提供与mongoDB和mongoose模型通信的方法。()其他文件大多是Express配置文件(例如Rountigs),您可以在此处找到相关文档:您也可以根据第一个请求成功的情况发出两个http请求,但此处的第一个选项更好
var promise = Meetups.find({ tags: 'javascript' }).select('_id').exec();
promise.then(function (meetups) {
  var ids = meetups.map(function (m) {
    return m._id;
  });
  return People.find({ meetups: { $in: ids }).exec();
}).then(function (people) {
  if (people.length &lt; 10000) {
    throw new Error('Too few people!!!');
  } else {
    throw new Error('Still need more people!!!');
  }
}).then(null, function (err) {
  assert.ok(err instanceof Error);
});