在数据库(MongoDb)中检测到更改时将数据发送到前端(Angular)

时间:2019-05-24 11:21:30

标签: angular mongodb express mean-stack meanjs

我正在开发MEAN.js APP 据我所知MongoDB不是实时数据库,但是使用change Streamwatch我们可以检测数据库中的更改

所以我设法做的是检测数据库中何时发生更改,如下所示:

app.get("/getLogs", (req, res) => {
      const { db } = req.app.locals;
      const changeStream = db.collection("Logs").watch();
      changeStream.on("change", function(change) {
        db.collection("Logs")
          .find()
          .toArray(function(err, results) {
            logs = results;
            // send Data to frontend
          });
      });

问题在于如何将数据从快递发送到角度,角度如何保持在侦听变化上。

我曾尝试将数据res.send()发送到前面,但是由于我将收到错误"Cannot set headers after they are sent to the client"

,因此无法正常工作

关于如何执行此操作的任何想法?

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用res.json()

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Laravel\Lumen\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        //
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        //
    }
}