node.js - AngularJS 中 $save 方法的回调

标签 node.js angularjs recaptcha

我正在寻找一个回调,用于我的 angularjs 中的 $save 方法。

我正在向 node.js 后端发送一篇博客文章,并通过 recaptcha 验证将其传递。

按照 $resource 文档中的方式进行操作不起作用:

非 GET 实例操作:instance.$action([参数], [成功], [错误])

var post = new Posts({
            title: this.title,
            content: this.content,
            response: this.model.captcha.response,
            challenge: this.model.captcha.challenge
         });

post.$save({}, 
     function(addedpost) {
         $location.path('posts/' + addedpost._id);
    }, function(error) {
         console.log(error);
         vcRecaptchaService.reload();
    });

在服务器中,我使用 Node.js 的 simple_recaptcha 模块来验证请求中打包的 recaptcha 质询和响应。

var verifyRecaptcha = function(req,res,next){
    var privateKey = 'XXXXXXXXXXXXXXXXXXXXXXXX';
    var ip = req.ip;
    var challenge = req.body.challenge;
    var response = req.body.response;
    simple_recaptcha(privateKey, ip, challenge, response, function(err) {
        if(err) return res.send(401,err.message);
        console.log('Recaptcha verified!');
    });
    next();
};

因此,当验证码正确时,它应该继续并将帖子添加到数据库中,如果不正确,后端会响应 401 并且前端 Angular js 应将其识别为错误并刷新 recaptcha。

我错过了什么?

最佳答案

有时我也会迷失在 AngularJS 的(通常非常好的)文档中。 就我而言,我在这里找到了解决方案:how-to-add-call-back-for-resource-methods-in-angularjs

您可以让服务器在 POST 上完成其工作并分析响应,例如:

    post.$save(
        function(data){
            console.log(JSON.stringify(data));
            if(data.error_message){
                 // ... error_message comes from the server
            } else {
                // ...
            }
        }
    );        

关于node.js - AngularJS 中 $save 方法的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22428694/

相关文章:

javascript - AngularJS 1.0.7 : Nesting parallel promises with $resources

JavaFX WebView、reCaptcha 无法工作(浏览器不受支持)

electron - 如何在 Electron 应用程序中使用 Google 的 reCAPTCHA?

node.js - 与解构一起使用的 Sinon stub 函数

javascript - 实现 Hermite 插值 - 多人游戏

node.js - 离线构建无服务器应用程序的最佳方法是什么?

python - 在 Selenium 中提取隐藏元素

javascript - Angular http.post 发送空 json

javascript - Angularjs 在指令中获取输出后将值分配给 Controller

javascript - 控制台登录 Angular