• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

174
Vistas
Node.js + Express: estructura de archivos y comunicación

Tengo una aplicación de inicio de sesión, pero tengo problemas para comunicar las credenciales del formulario ( email y password ) a mis archivos .js existentes, donde realiza alguna lógica y recupera información.

En mi página de inicio de login tengo un form con un método POST . Luego, tengo un main.js que realiza el inicio de sesión:

principal.js

 module.exports = { returnSessionToken: function(success, error) { var email = email_X; var pwd = password_Y; [...] function(error, response, body) { var login = JSON.parse(body); success(login.sessionToken) }

Y luego tengo un index.js donde recupero información del usuario registrado:

índice.js

 var authToken = require("./main"); authToken.returnSessionToken((result) => { 'my_website_token': result, [...] }

En mi proyecto express , tengo estos dos archivos en una carpeta js . Lo que estoy tratando de hacer es obtener el correo electrónico y la contraseña del form de la página de inicio de sesión y pasarlo a mi archivo main.js ( email_X y password_Y ) y luego llamar a index.js . Sé cómo obtener req.body.email y req.body.password en la carpeta de routes , pero todavía no puedo entender cómo hacer que estos archivos se comuniquen.

También he intentado editar el archivo app.js en:

aplicación.js

 var login = require('./js/main');

y entonces,

 app.use('/myaccount', login);

Pero sin éxito. Cualquier ayuda será muy apreciada. ¡Gracias!

about 3 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Estoy un poco confundido por los detalles y lo que parece ser que faltan algunos pasos, pero parece que el problema puede deberse a la forma en que está configurando y haciendo referencia a su módulo main.js.

app.use('/myaccount', login) enviará dos objetos a su módulo main.js, generalmente denominados req y res. req contiene información sobre la solicitud http. Creo que los datos de una publicación de formulario HTTP se envían en req.body.

Vea el ejemplo a continuación:

índice.js

 var express = require('express'); var login = require('./login'); var app = express(); app.use('/login', login); // mount the sub app

iniciar sesión.js

 var express = require('express'); var login = express(); login.post('/', function (req, res) { console.log(req.body); // should print your form data // do your login logic here res.status(200).end(); // Sends http response back }); module.exports = login;
about 3 years ago · Santiago Trujillo Denunciar

0

Para referencia futura, aquí hay un ejemplo de trabajo. ¡Gracias Ryan Villanueva por la ayuda!

principal.js

 module.exports = { returnSessionToken: function(email, pwd, success, fail) { var email = email; var pwd = pwd; success(token) [...] }

índice.js

 module.exports = { returnUserData: function(authToken, success) { [...] 'my_website_token': authToken, }

aplicación.js

 var myaccount = require('./routes/myaccount'); app.use('/myaccount', myaccount);

rutas/micuenta.js

 var express = require('express'); var router = express.Router(); var login = require('../js/main') router.post('/', function(req, res) { var email = req.body.email var password = req.body.password login.returnSessionToken(email, password, (token) => { console.log("return token: ", token) var logged = require('../js/index') logged.returnUserData(token, (myData) => { res.render('myaccount', { myData: myData }); }) }, (fail) => {console.log(fail)}) }) module.exports = router;
about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda