Controladores NODEJS para un autobús y un usuario -- javascript campo con node.js campo con promise campo con controller campo con express.js camp codereview Relacionados El problema

NodeJS controllers for a bus and a user


1
vote

problema

Español

Estoy escribiendo mi servidor y ahora estoy creando un controlador para cada ruta para que pueda usar el mismo controlador en diferentes API en lugar de reescribir el mismo código una y otra vez. A continuación se muestra mi ejemplo de código de dos controladores diferentes que se utilizan juntos en la misma ruta.

  module.exports = { addUser : function(record,schoolId){     return new Promise(function(resolve,reject){     var newUser = new User({         phone_number : record.phone_number,         email : record.email,         name :  record.name_of_user,         password: "123",         type: 3,         refid: record.bus._id,         school_id: schoolId     });     newUser.save(function(err,user){         if(err){             reject(user)         }else{             resolve(user);         }     });     }).catch(function(error){             if(error){                 res.json({status:"error", message :"error saving user"});                 return;             }         });      } };   

El otro controlador es el controlador de bus.

  var Bus = require('../models/bus');           module.exports= { addBus : function(record,schoold){     return new Promise(function(resolve,reject){         var bus_number = record.bus_number,             trips = record.trips,             location = record.location,             language = record.language,             name = record.name,             license = record.license[0],             age = record.age,             capacity = record.capacity,             maker = record.maker,             model = record.model,             plate_number = record.plate_number;          var newBus = new Bus({             language: language ? language : "",             bus_number: bus_number  ? bus_number : "",             bus_driver: bus_driver  ? bus_driver : {},             bus_details: bus_details ,             trips: trips ? trips : [],             school_id: schoold,             location: location ? location : {}         });         newBus.save(function(err,bus){             if(err){                 reject(bus);             }else{                 resolve(bus);             }         });     }).catch(function(error){             if(error){                 res.json({status:"error", message :"error while saving bus"});                 return;             }         });       }     };   

En mi ruta, debería crear un autobús y luego crear un usuario para el autobús, el usuario tiene que tener la ID de bus como un ID de ref. ¿Cuál es la mejor manera de organizar mi código? ¿Debo llamar al Addbus desde la ruta y luego llamar al usuario Agregar desde el controlador de bus? ¿O debo llamar a ambos de la ruta? Y si es así, ¿cómo devolveré la ID de bus creada desde el Addbus a la ruta?

He intentado lo siguiente, pero no funcionó!

  router.post('/add',Validation, function (req, res) {  var record = req.body.record; record.name_of_user =  "باص رقم"+ ' ' +record.bus_number; console.log(record); var schoolId = req.body.schoolId; BusController.addBus(record,schoolId).exec().then(function(){     return UserController.addUser(record,schoolId); }).then(function(){     res.json({status:"success", message : "bus successfully created"});  }).catch(function(error){         if(error){             console.log(error);             res.json({status:"error",message:"error while creating bus"});              return;         }     });   
Original en ingles

I'm writing my server and now I'm creating a controller for each route so I could use the same controller in different apis rather than rewrite the same code over and over. Below is my code example of two different controllers that are used together in the same route.

module.exports = { addUser : function(record,schoolId){     return new Promise(function(resolve,reject){     var newUser = new User({         phone_number : record.phone_number,         email : record.email,         name :  record.name_of_user,         password: "123",         type: 3,         refid: record.bus._id,         school_id: schoolId     });     newUser.save(function(err,user){         if(err){             reject(user)         }else{             resolve(user);         }     });     }).catch(function(error){             if(error){                 res.json({status:"error", message :"error saving user"});                 return;             }         });      } }; 

The other controller is the bus controller.

var Bus = require('../models/bus');           module.exports= { addBus : function(record,schoold){     return new Promise(function(resolve,reject){         var bus_number = record.bus_number,             trips = record.trips,             location = record.location,             language = record.language,             name = record.name,             license = record.license[0],             age = record.age,             capacity = record.capacity,             maker = record.maker,             model = record.model,             plate_number = record.plate_number;          var newBus = new Bus({             language: language ? language : "",             bus_number: bus_number  ? bus_number : "",             bus_driver: bus_driver  ? bus_driver : {},             bus_details: bus_details ,             trips: trips ? trips : [],             school_id: schoold,             location: location ? location : {}         });         newBus.save(function(err,bus){             if(err){                 reject(bus);             }else{                 resolve(bus);             }         });     }).catch(function(error){             if(error){                 res.json({status:"error", message :"error while saving bus"});                 return;             }         });       }     }; 

In my route I should create a bus and then the create a user for the bus, the user has to have the bus id as a ref id. What is the best way to organize my code? should I call the addBus from the route and then call the add user from the bus controller? or should I call both from the route? and if so how do I return the created bus id from the addBus to the route?

I've tried the following but it didn't work!

router.post('/add',Validation, function (req, res) {  var record = req.body.record; record.name_of_user =  "xd8xa8xd8xa7xd8xb5 xd8xb1xd9x82xd9x85"+ ' ' +record.bus_number; console.log(record); var schoolId = req.body.schoolId; BusController.addBus(record,schoolId).exec().then(function(){     return UserController.addUser(record,schoolId); }).then(function(){     res.json({status:"success", message : "bus successfully created"});  }).catch(function(error){         if(error){             console.log(error);             res.json({status:"error",message:"error while creating bus"});              return;         }     }); 
              

Lista de respuestas


Relacionados problema

3  Leyendo un archivo de texto, manipulándolo y guardándolo a una base de datos Mongo  ( Reading a text file manipulating it and saving it to a mongo database ) 
Tenemos un próximo proyecto en el trabajo que requerirá trabajar con Express.js. No tengo experiencia previa con Node.js, así que pensé que intentaría hacer a...

2  CÓDIGO DE ENTREVADOR DE COMPROBADOR DE COMPLETADOR DE JAVASCRIP NODE / REACT  ( Javascript node react web developer interview code ) 
Recientemente solicité un trabajo como un desarrollador de nodos / reaccionar. Estoy intentando cruzar de una posición de investigación al desarrollo web. No ...

4  Estoy rasgado entre los condicionales y las funciones abruptas de retorno  ( Im torn between conditionals and abrupt return functions ) 
¿Cuál de estos dos es mejor? este: middleware.response_redirect = function(){ return function (req, res, next){ var redirect = function(){ ...

16  Rutas exportadoras en Node.js Express 4  ( Exporting routes in node js express 4 ) 
Estoy usando Express 4 para proporcionar rutas a archivos HTML / JADE, y también para proporcionar una API. Quiero separar las rutas del archivo del servido...

1  Administración de módulos en la aplicación de la guía telefónica  ( Managing modules in phone book app ) 
Esta es una aplicación de prueba construida con NODEJS, Express y Mongodb. Este código es el archivo JavaScript principal y completo. Me gustaría sugerencias ...

2  JavaScript Nodo / Reaction Desarrollador web Código de entrevista Parte 2 API API  ( Javascript node react web developer interview code part 2 restful api ) 
Recientemente solicité un trabajo como un desarrollador de nodos / reaccionar. Estoy intentando cruzar de una posición de investigación al desarrollo web. No ...

2  Cree una solicitud de transmisión para el historial de transacciones por ID de cliente en Braintree Vault  ( Create a stream request for transaction history by client id on braintree vault ) 
He estado tratando de crear una solicitud de historial de transacciones de Braintree utilizando un ID de cliente en Braintree Vault, y se tardó mucho en descu...

0  Implementación de devolución de llamada en la solicitud de la base de datos  ( Implementation of callback in database request ) 
Soy un principiante completo en JavaScript / Node.js / Express, pero tiene alguna experiencia con PHP. Estoy tratando de pasar datos de una base de datos SQ...

5  Expresar middleware para validar la URL y las etiquetas  ( Express middleware to validate url and tags ) 
Estoy construyendo una API donde el cliente puede enviar un 9988776655544330 y algún 998877765555443331 : { "url": "https://www.youtube.com/watch?v=p...

1  Express, cuchilla con activos connect  ( Express blade with connect assets ) 
Tengo este código Coffeescript que ejecuta aquí (con tzm-blade ) y desea que su opinión sobre cómo optimizarlo mejor. express = require "express" gzippo...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos