Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

278
Vistas
¿Por qué recibo un error de referencia aunque definí la función?

Tengo el siguiente código que se ejecutaría, pero al hacer clic en un botón que llama a la función 'Auth', aparece un error que indica que no está definido. ¿Porqué es eso? Lo definí en el siguiente código, ¿no?

 app.get('/sign-in', function(req, res, next) { res.render('sign-in', { title: 'Sign In' }) function Auth(event) { event.preventDefault() firebaseAuth.signInWithEmailAndPassword('email@email.com', 'password').catch(function(error) { var errorCode = error.code var errorMessage = error.message console.log(errorCode) console.log(errorMessage) }) } })

Se llama aquí (pug):

 h2 Please sign in form(class='form-signin' role='form') input#email.form-control(type='email' placeholder='E-mail address' required='' autofocus='') input#password.form-control(type='password' placeholder='Password' required='') button.btn.btn-lg.btn-primary.btn-block(type='submit' onclick='Auth(event)') Sign In

EDITADO :

 (pug file) link(rel='script', href='../public/javascripts/scripts.js') body .container h2 Please sign in form(class='form-signin' role='form') input#email.form-control(type='email' placeholder='E-mail address' required='' autofocus='') input#password.form-control(type='password' placeholder='Password' required='') button.btn.btn-lg.btn-primary.btn-block(type='submit') Sign In (public/javascripts/scripts.js) $('button').on('click', function(event) { event.preventDefault(); $.ajax({ url: '/api/sign-in', method: 'POST', data: { email: $('#email').val(), password: $('#password').val() } }); } (app.js) function Auth(email, password) { return firebaseAuth.signInWithEmailAndPassword(email, password) } app.get('sign-in', function(req,res,next) { res.render('sign-in', { title: 'Sign In' }) }) app.get('/api/sign-in', function(req, res, next) { Auth(req.body.email, req.body.password) .then(function() { console.log('success!') }) .catch(function(error) { console.log(error) }) })
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Aquí está el problema, las funciones que define en su servidor express no funcionarán en el cliente, así es como funciona ahora.

  • Debe crear una función de autenticación en su aplicación Express que intentará iniciar sesión en Firebase.
  • Cree un punto final que, cuando se llame o acceda a través del método POST/GET, ejecutará la función Auth.
  • Luego, en el lado del cliente, cree una función que hará una llamada ajax al punto final de su servidor (express) cuando se haga clic en el botón.

p.ej

código expreso:

 app.post('/api/sign-in', function(req, res, next) { firebase.auth().signInWithEmailAndPassword(req.query.username, req.query.password) .catch(function(error) { console.log(error); }); });

código de cliente (usando jQuery para mayor claridad):

 $('#button').on('click', function(event) { event.preventDefault(); $.ajax({ url: '/api/sign-in', method: 'POST', data: { username: $('#user').val(), password: $('#pass').val() } }); }
over 4 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda