Я новичок в mongoDB, Nodejs и выражу вашу помощь будет более ценно.
В приведенном ниже коде я пытаюсь найти и получить оставшийся счет из модели коллекции"examConfigModel", передав код экзамена, и выполняется проверка оставшегося числа, если его значение больше 0, затем найдите другую модель сбора "examRegisterModel" на основе кода экзамена, а затем есть проверка, чтобы избежать дублирования записи в БД.Если он уникален, сохраните документ, в противном случае верните сообщение об ошибке «message:« Уже зарегистрирован »».Но после выполнения кода сохранение работает нормально, но я получаю ошибку ниже, и сервер узла остановится.
Пожалуйста, помогите мне, как я могу иметь дело с несколькими запросами в запросе.
Ошибка: невозможно установить заголовки после их отправки.в validateHeader (_http_outgoing.js: 491: 11) в ServerResponse.setHeader (_http_outgoing.js: 498: 3) в ServerResponse.header (C: \ practice \ angular2 \ student-reg-app \ node_modules \ express \ lib \ response.js: 767: 10) в ServerResponse.send (C: \ practice \ angular2 \ student-reg-app \ node_modules \ express \ lib \ response.js: 170: 12) в ServerResponse.json (C: \ practice \ angular2 \student-reg-app \ node_modules \ express \ lib \ response.js: 267: 15) в C: \ Practice \ angular2 \ student-reg-app \ server \ rout \ api.js: 208: 17 в C: \ Practice\ angular2 \ student-reg-app \ node_modules \ mongoose \ lib \ model.js: 4495: 16 в модели. $ __ save.error (C: \ practice \ angular2 \ student-reg-app \ node_modules \ mongoose \ lib \ model.js: 396: 7) в C: \ practice \ angular2 \ student-reg-app \ node_modules \ kareem \ index.js: 315: 21 в следующем (C: \ practice \ angular2 \ student-reg-app \ node_modules \kareem \ index.js: 209: 27) в Kareem.execPost (C: \ practice \ angular2 \ student-reg-app \ node_modules \ kareem \ index.js: 217: 3) в _cb (C: \ practice \ angular2 \студент-рег-приложение \ node_modules \ Карим \ index.js: 307:15) в $ __ handleSave (C: \ practice \ angular2 \ student-reg-app \ node_modules \ mongoose \ lib \ model.js: 310: 5) в C: \ practice \ angular2 \ student-reg-app \ node_modules\ mongoose \ lib \ model.js: 193: 7 в результате (C: \ practice \ angular2 \ student-reg-app \ node_modules \ mongodb \ lib \ utils.js: 414: 17) в session.endSession (C: \практика \ angular2 \ student-reg-app \ node_modules \ mongodb \ lib \ utils.js: 401: 11)
Ниже приведен код, пожалуйста, помогите мне, если не ясно с моим Вопросом, пожалуйста, дайте мне знатьЯ предоставлю более подробную информацию.
const express = require('express');
const router = express.Router();
const mongoose = require('mongoose');
const usersSchemaModel = require('../models/users-schema');
const statesSchemaModel = require('../models/states-schema');
const citiesSchemaModel = require('../models/cities-schema');
const examSchemaModel = require('../models/exam-schema');
const examConfigModel = require('../models/exam-config-schema');
const examRegisterModel = require('../models/regrequests-schema');
const db = require('../config/db');
const bcrypt = require('bcryptjs');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
var jwt = require('jsonwebtoken');
mongoose.Promise = global.Promise;
mongoose.connect(db.database,(err)=>{
if(err){
res.json(err);
}else{
console.log('connected');
}
});
//Register exam
router.post('/exam/register',(req, res)=>{
examConfigModel.findOne({
examcode: req.body.exam
},function(err, result) {
if (err) {
throw err;
} else {
console.log("Rem Seats: " + result.remaining);
if(result.remaining > 0){
console.log("remaining: "+result.remaining);
const examModel = new examRegisterModel();
examModel.userid = req.body.userid;
examModel.stateid = req.body.stateid;
examModel.cityid = req.body.cityid;
examModel.exam_code = req.body.exam;
examModel.father_name = req.body.father_name;
examModel.last_name = req.body.last_name;
examModel.mobileno = req.body.mobileno;
examModel.city = req.body.city;
examModel.street = req.body.street;
examModel.address = req.body.address;
examModel.zipcode = req.body.zipcode;
console.log("RequestBody: "+req.body.exam);
examRegisterModel.findOne({
exam_code: req.body.exam
},function(err, resResult) {
if (err) {
throw err;
} else {
if(resResult == null){
save(examModel,result, res);
}else{
console.log("DB: "+ resResult +" REQ: "+ req.body.exam)
if(resResult.exam_code != req.body.exam){
console.log('notEqual')
save(examModel,result, res);
}else{
console.log()
res.json({reg:'failed',message:"Already Registered",errorCode:"6001"});
}
}
}
});
}else{
res.json({reg:"failed",result:"No seat available",errorCode:7012});
}
}
});
});
function save(examModel,result,res){
examModel.save(function(err,config){
if(err){
console.log(err);
res.json(err);
}else{
console.log(result);
if(result != null){
const reduceCount = result.remaining-1;
res.json({reg:'success',rem:reduceCount,e_id:result._id,errorCode:""});
}
res.json({reg:'success',errorCode:""});
}
});
}
//Update Exam Config
router.put('/update/config/:id',(req, res)=>{
examConfigModel.findByIdAndUpdate(req.params.id,{
$set : {remaining:req.body.rem}
},
{
new : true
},
function(err,updatedExamConfig){
if(err){
console.log(err);
res.json(err);
}else{
res.json({config:'success'});
}
})
});