[英]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.