简体   繁体   English

编译后无法覆盖“电子邮件”model

[英]Cannot overwrite `emails` model once compiled

// Require mongoose module
const mongoose = require("mongoose");
// Importing express module
const express = require('express');
const jwt = require('jsonwebtoken'); 
const router = express.Router();
const dotenv = require('dotenv'); 
dotenv.config();
let cors = require("cors");
router.use(cors());
router.use(express.json()); 
// Set Up the Database connection
const { Email } = require( '../../models/Stats' );
const M_URL = process.env.MONGO_URL;
mongoose.connect(M_URL, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
});
const schema = new mongoose.Schema({});


router.get('/',(req,res)=>{
    const collection= mongoose.model('emails',{}) || mongoose.model.emails;
    collection.aggregate([
      {
    
        "$group": {
          "_id": {
            "id": {
              "$dateToString": {
                "date": "$createdAt",
                "format": "%Y-%m-%d"
              }
            }
          },
          "iEmailCount_Success": {
            "$sum": {
              "$cond": {
                "if": {
                  "$eq": [
                    "$sEmailStatus",
                    "Sent"
                  ]
                },
                "then": 1,
                "else": 0
              }
            }
          },
          "iEmailCount_Failded": {
            "$sum": {
              "$cond": {
                "if": {
                  "$eq": [
                    "$sEmailStatus",
                    "Failed"
                  ]
                },
                "then": 1,
                "else": 0
              }
            }
          }
        }
      },
      {
        "$project": {
          "_id": 0,
          "cDate": "$_id.id",
          "iEmailCount_Success": 1,
          "iEmailCount_Failded": 1
        }
      } 
      ,
      {
        "$sort":{
          "cDate":1
        }
      }
    ]).exec((error,result)=>{
      if(error){
        //console.log(error);
        res.status(400).send({"error": "true","StatusCode": 400,"data":error});
      }else{
        //console.log(result);
        res.status(200).send({"error": "false","StatusCode": 200,"data":result});
      } 
    })
  });
  

module.exports = router;

this is my code and i am getting this error这是我的代码,我收到此错误

Cannot overwrite emails model once compiled.编译后无法覆盖emails model。

after i hit to api在我打到 api 之后

error is as follow错误如下

GET /stats/emails_sent_fails undefined Cannot overwrite emails model once compiled. GET /stats/emails_sent_fails undefined 编译后无法覆盖emails model。 [2023-01-29T20:03:29.230Z] Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client at new NodeError (internal/errors.js:322:7) at ServerResponse.setHeader (_http_outgoing.js:561:11) at ServerResponse.header (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/response.js:794:10) at ServerResponse.send (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/response.js:174:12) at ServerResponse.json (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/response.js:278:15) at /home/plus91/Desktop/medixcel-email-service/config/routes.js:30:40 at Layer.handle [as handle_request] (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/router/index.js:328:13) at /home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/router/index.js:286:9 at param (/home/plus91/Desktop [2023-01-29T20:03:29.230Z] 错误 [ERR_HTTP_HEADERS_SENT]:在 ServerResponse.setHeader (_http_outgoing.js: 561:11) 在 ServerResponse.header (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/response.js:794:10) 在 ServerResponse.send (/home/plus91/Desktop/medixcel-电子邮件服务/node_modules/express/lib/response.js:174:12) 在 ServerResponse.json (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/response.js:278:15)在/home/plus91/Desktop/medixcel-email-service/config/routes.js:30:40 在Layer.handle [as handle_request] (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib /router/layer.js:95:5) 在 trim_prefix (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/router/index.js:328:13) 在 /home/plus91/Desktop /medixcel-email-service/node_modules/express/lib/router/index.js:286:9 在参数 (/home/plus91/Desktop /medixcel-email-service/node_modules/express/lib/router/index.js:365:14) at param (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/router/index.js:376:14) at Function.process_params (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/router/index.js:421:3) at Immediate.next (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/router/index.js:280:10) at Immediate._onImmediate (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/router/index.js:646:15) at processImmediate (internal/timers.js:466:21) /medixcel-email-service/node_modules/express/lib/router/index.js:365:14) 在参数 (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/router/index.js :376:14) 在 Function.process_params (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/router/index.js:421:3) 在 Immediate.next (/home/plus91/Desktop /medixcel-email-service/node_modules/express/lib/router/index.js:280:10) 在 Immediate._onImmediate (/home/plus91/Desktop/medixcel-email-service/node_modules/express/lib/router/index .js:646:15) 在 processImmediate (internal/timers.js:466:21)

output whenever someone hits on route output 每当有人在路上撞到

I believe you have Email model here我相信你这里有Email model

const { Email } = require( '../../models/Stats' );

Declare collection with empty schema cause mongodb override the existing one.声明具有空架构的集合导致 mongodb 覆盖现有架构。 You can use Email.aggregate(...) directly instead.您可以直接使用Email.aggregate(...)

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

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