angularjs - 如何将后端错误/成功消息从 Node.js 发送到 AngularJS Controller 中的前端?

标签 angularjs node.js

我有一个使用 ExpressJS 构建在 MEAN 堆栈上的应用程序。

例如,需要从后端(NodeJS)向前端(AngularJS)发送成功或错误消息,以显示文件何时成功上传。下面 - 在 app.post 成功完成后,我想在前端(在 AngularJS 中)显示此结果。

app.post('/upload' , function (req, res) {
        //busboy handles multi-part file upload
        console.log('Post received to upload ...');

        var fstream;

        req.pipe(req.busboy);

        req.busboy.on('file', function (fieldname, file, filename) {
            //only update if the filename was change or exists
            if (filename!== undefined || filename !=='') {
                  //reset url
                  options.url = '';
                 console.log("Uploading the file " + filename);
                  console.log("before", options);
                  options.path = '/uploads/'  + filename;
                  options.fileName = filename; //update file name

                  console.log("Updating options ...", options);
                  fstream = fs.createWriteStream(__dirname + '/uploads/' + filename); //path where the file will be uploaded
                  file.pipe(fstream);
                  fstream.on('close', function () {
                      console.log("Upload finished successfully ! Uploaded " + filename);
                      initOntology();//initialize the ontology from upload
                      initEdges();
                  });
            }

        });
});

有什么方法可以将 NodeJS 的结果发送到 AngularJS Controller 吗?

有一个类似的问题here ,但尚未解决。

最佳答案

你应该使用socket.io

当前端启动时,它会连接到“套接字连接”。这是与 HTTP 不同的协议(protocol)。如果不能这样做,它将使用通过 HTTP 工作的降级版本的连接。

连接的任一端都可以“发出”一条消息,该消息会发送到另一端。后端可以向所有客户端或特定客户端发送消息。您可以设置 Angular 来接收消息并创建自己的事件,一个或多个 Controller 可以监听该事件。请参阅https://github.com/btford/angular-socket-io当前端想要向后端发送消息时,可以使用套接字,或者只是常规的 HTTP POST 等。

在 Angular 和 Node 中使用它是相当标准的,应该有很多关于如何做到这一点的信息。

关于angularjs - 如何将后端错误/成功消息从 Node.js 发送到 AngularJS Controller 中的前端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33097244/

相关文章:

javascript - 来自范围的 Controller 名称

javascript - 我想在 Action on Google 中添加列表

javascript - RequireJS - "No define call for"几个与 Angular 相关的库

javascript - AngularJS:通过路由参数化 Controller

node.js - 无法在控制台中看到 MediaStream 属性值

javascript - 使用 GCloud KMS 生成加密 key 以访问私有(private)存储库作为依赖项时出错

node.js - 如何在 node.js 中使用 express 上传

node.js - NodeJS 连接 Paradox 数据库

javascript - 无法从 Jquery 到 Angular 的 $scope 获取值?

angularjs - 'Content-Type' : 'application/x-www-form-urlencoded do in http post method 是什么