我正在寻找关于如何构建我正在构建的系统的反馈。
我有一些更新 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/