javascript - 使用 Firebase 作为 AngularJS 和 NodeJS 之间的中介是一个 'bad' 想法吗?

标签 javascript node.js angularjs firebase

我正在寻找关于如何构建我正在构建的系统的反馈。

我有一些更新 Firebase 数据库的 Node.JS 脚本。 然后我有一些前端 AngularJS 应用程序从 Firebase DB 读取数据。

这很有效。

现在我开始需要前端 AngularJS 应用程序与 Node.JS 服务器通信。例如向某人发送电子邮件。

所以我可以做到这一点的一种方法是使用 Firebase 数据库作为中介。我可以更改数据库中的值。例如具有属性 timedOut: false 的对象;为真;服务器然后有一些代码,如

firebaseRef.on('child_changed', function (snapshot) {
    var changedNode = snapshot.val();
    if(changedNode.timedOut) {

我正在努力思考如何最好地让前端应用程序将任务传送到服务器。我想创造这样的东西 http://scotch.io/tutorials/javascript/build-a-restful-api-using-node-and-express-4除了使用 Firebase 作为中介?

最佳答案

使用 Firebase。

如果您使用 Firebase 作为您的主要数据存储,我强烈建议您不要直接与您的 Node 后端对话。必须将 Angular 应用程序连接到 Node 脚本需要大量不必要的开销,而 Firebase 有助于减少这些开销。

如果你想建立一个到你后端的连接,你必须公开和端点让你的 Angular 应用程序与你交谈。您还必须使用 AJAX 或某些 Web 套接字实现来发送数据。这没有意义,因为 Firebase 已经在处理您的数据传输。

为了执行任何后端类型的任务,例如发送电子邮件,您可以连接一个监听器,这将帮助您在您指示某些内容已更新时触发这些电子邮件。

在您的应用中,它可能看起来像这样:

$scope.ref = $firebase(new Firebase('<your-firebase>/emailsToSend'));
$scope.updateOnClick = function() {
   var email = // get this somehow
   $scope.ref.$push(email);
};

然后在你的 Node JS 服务器上

var ref = new Firebase('<your-firebase>/emailsToSend');
// this is a dummy object for the example only
var emailClient = new EmailClient(); 
ref.on('child_added', function(snap) {
   var emailToSend = snap.val();
   // send email
   emailClient.send(email, function afterSend() {
     // if you can hook into when the email has sent 
     // delete the data afterwards
     snap.ref().remove();
   });
});

对于发送电子邮件等服务,您可能需要查看 Zapier。他们连接到 Firebase 并为您处理这些事件。

关于javascript - 使用 Firebase 作为 AngularJS 和 NodeJS 之间的中介是一个 'bad' 想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26311838/

相关文章:

javascript - 验证函数不应接受字母字符

javascript - 在 AngularJs 中的位置

javascript - 向多个设备发送推送 FCM (Web) 无法生成通知 key

javascript - 拖放多个项目html5

javascript - Socket.io 教程不打印到控制台的连接

angularjs - 从 angularjs ui-grid 菜单中删除聚合菜单项

javascript - 仅获取模型对象上的过滤数据作为结果,angularjs

javascript - 从另一个脚本访问 javascript 变量

c - 如何从nodeJS调用C函数

node.js - Tensorflow 服务 grpc 客户端错误 12