简体   繁体   English

需要帮忙。 我删除了数据库中的 MongoDB 文档,但我的应用程序继续使用 AJAX 显示它们

[英]Need help. I deleted MongoDB documents in my database but my app keeps displaying them with AJAX

i use deleteMany({}) to delete all documents but somehow my app still able to display users with ajax that i cant even find in mongodb anymore.我使用 deleteMany({}) 删除所有文档,但不知何故,我的应用程序仍然能够显示 ajax 的用户,我什至在 mongodb 中都找不到了。 i dont understand how this is even possible.我不明白这怎么可能。 in mongo it says there is no documents left but my app is still able to get old users.在 mongo 中,它说没有留下任何文件,但我的应用程序仍然能够获得老用户。

// this is the ajax and trust me there is no documents to grab but somehow it does. // 这是 ajax,相信我没有文件可以抓取,但不知何故。

  $(document).ready(() => {
   $.ajax({
        url: '/trainersData',
        type: 'GET',
        dataType: 'json',
        success: (data) => {
        console.log(data);
        for(i = 0 ;i < data.length; i++){
        const $div = '<a href='+window.location.href+"/"+data[i]._id+'><div class="showcase" id=trainer-'+i+'></div></a>';
         $('#trainers_showcase').append($div);
         $('#trainer-' + i).text(data[i].firstName + ' ' + data[i].lastName);
        };
     }
   });
   });

here is the backend code这是后端代码

const express = require('express');
const app = express();
const router = require('./routes/trainers');
const user = require('./routes/user');
const bodyParser = require('body-parser')
const path = require('path');
const mongoose = require('mongoose');
const trainer = require('./routes/models/Trainer');
const session = require('express-session');
const mongoStore = require('connect-mongo')(session);
const review = require('./routes/models/Review');


mongoose.connect('mongodb://localhost/trainers',{ useNewUrlParser: true});

mongoose.connect('mongodb://localhost/reviews', { useNewUrlParser: true});


mongoose.connection.once('open', () => {
  console.log('connection successful')
}).on('error', (error) => {
  console.log('error:',error);
});

app.set('view engine','pug');

app.use(session({secret: 'sghepighgo33b',
                 resave:true,
                 saveUninitialized:true,
                 store: new mongoStore({mongooseConnection: mongoose.connection,
                 ttl: 2 * 24 * 60 * 60})}));

app.use(bodyParser.json());

app.use(bodyParser.urlencoded({ extended: true }));

app.use(user);

app.use(express.static(__dirname+'/views'));

app.use(router);



app.get('/trainersData', (req,res) => {
  trainer.find({},(err,trainer) => {
    if(err){
      res.send(err);
    }else {
      let jsonData = JSON.stringify(trainer);
      res.send(jsonData);
    }
  })
});

app.listen(3000, () => {
  console.log('running.......')

}) })

You are trying to connect to two databases trainers and reviews .您正在尝试连接到两个数据库trainersreviews Try creating new Mongoose instance for each connection like:尝试为每个连接创建新的 Mongoose 实例,例如:

const trainerConn = new Mongoose();
trainerConn.connect('mongodb://localhost/trainers',{ useNewUrlParser: true});

const reviewConn = new Mongoose();
reviewConn.connect('mongodb://localhost/reviews',{ useNewUrlParser: true});

or you can have two collections trainers and reviews in one database或者您可以在一个数据库中拥有两个 collections培训师评论

mongoose.connect('mongodb://localhost/sandbox',{ useNewUrlParser: true});

now sanbox db will have two collections according to the model files.现在根据 model 文件, sanbox db 将有两个 collections。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM