Foros del Web » Programando para Internet » Node.js »

[SOLUCIONADO] ERROR con POST en NODE+EXPRESS

Estas en el tema de ERROR con POST en NODE+EXPRESS en el foro de Node.js en Foros del Web. Estoy tratando de hacer el post de unos campos en un formulario pero me arroja el siguiente error: Código PHP: Express 500 ReferenceError :  login is not defined         at exports ...
  #1 (permalink)  
Antiguo 03/06/2015, 14:40
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 10 meses
Puntos: 8
ERROR con POST en NODE+EXPRESS

Estoy tratando de hacer el post de unos campos en un formulario pero me arroja el siguiente error:

Código PHP:
Express
500 ReferenceError
login is not defined
        at exports
.post_enviar (C:proyectorouteslogin.js:17:4)
       
at callbacks (C:proyectonode_modulesexpresslibrouterindex.js:164:37)
       
at param (C:proyectonode_modulesexpresslibrouterindex.js:138:11)
       
at pass (C:proyectonode_modulesexpresslibrouterindex.js:145:5)
       
at Router._dispatch (C:proyectonode_modulesexpresslibrouterindex.js:173:5)
       
at Object.router (C:proyectonode_modulesexpresslibrouterindex.js:33:10)
       
at next (C:proyectonode_modulesexpressnode_modulesconnectlibproto.js:174:15)
       
at Object.jsonParser [as handle] (C:proyectonode_modulesexpressnode_modulesconnectnode_modulesbody-parserlibtypesjson.js:103:37)
       
at next (C:proyectonode_modulesexpressnode_modulesconnectlibproto.js:174:15)
       
at Object.logger (C:proyectonode_modulesexpressnode_modulesconnectnode_modulesmorganindex.js:136:5

Las versiones y el codigo que estoy usando es el siguiente:

node version v0.12.3000
express 3.20.3


app.js
Código Javascript:
Ver original
  1. var express = require('express');
  2. var routes = require('./routes');
  3. var http = require('http');
  4. var path = require('path');
  5.  
  6. var app = express();
  7.  
  8. var v_login = require('./routes/login');
  9.  
  10. // all environments
  11. app.set('port', process.env.PORT || 3000);
  12. app.set('views', path.join(__dirname, 'views'));
  13. app.set('view engine', 'jade');
  14. app.use(express.logger('dev'));
  15. app.use(express.json());
  16. app.use(app.router);
  17. app.use(express.static(path.join(__dirname, 'public')));
  18.  
  19. // development only
  20. if ('development' == app.get('env')) {
  21.   app.use(express.errorHandler());
  22. }
  23.  
  24. app.get('/login', v_login.login);
  25. app.get('/login', v_login.get_enviar);
  26. app.post('/login', v_login.post_enviar);
  27.  
  28. http.createServer(app).listen(app.get('port'), function(){
  29.   console.log('Express server listening on port ' + app.get('port'));
  30. });

login.js
Código Javascript:
Ver original
  1. var lista = new Array();
  2.  
  3. exports.login = function(req, res){
  4.   res.render('login');
  5. };
  6.  
  7. exports.get_enviar = function(req, res){
  8.    login(req, res);
  9. }
  10. exports.post_enviar = function(req, res){
  11.    var usuario = req.body.usuario;
  12.    var password = req.body.password;
  13.    lista.push({
  14.       usuario: usuario,
  15.       password: password
  16.    })
  17.    login(req, res);
  18. }

login.jade
Código Javascript:
Ver original
  1. doctype html
  2. html(lang='en')
  3.   head
  4.   body
  5.     #container
  6.       form#frm(method='post', name='frm', action="login")
  7.         h1 Login
  8.         h2 usuario
  9.         input#usuario(name='usuario', type='text', value='')
  10.         br
  11.         h2 password
  12.         input#password(type='password', name='password', value='')
  13.         input#chkpassword(type='checkbox', name='chkpassword')
  14.         br
  15.         br
  16.         input(type='submit', value='Conectar')
  17.       ul
  18.         -for (i in lista)
  19.           li
  20.           #{lista[i].usuario}
  21.     #footer

Alguien podria hecharme una manito por favor?
__________________
18 laaaaargos años en FDW... y soy de los pocos que ví correr sangre! :X
  #2 (permalink)  
Antiguo 03/06/2015, 15:36
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: ERROR con POST en NODE+EXPRESS

Linea 17 de tu login.js, no has definido una función global con ese nombre.

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 04/06/2015, 06:07
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 10 meses
Puntos: 8
Respuesta: ERROR con POST en NODE+EXPRESS

Supongo te refieres a hacerlo de esta manera:

login.js
Código Javascript:
Ver original
  1. var lista = new Array();
  2.  
  3. exports.login = function(req, res){
  4.   res.render('login');
  5. };
  6.  
  7. exports.get_enviar = function(req, res){
  8.   [B] exports.[/B]login(req, res);
  9. }
  10. exports.post_enviar = function(req, res){
  11.    var usuario = req.body.usuario;
  12.    var password = req.body.password;
  13.    lista.push({
  14.       usuario: usuario,
  15.       password: password
  16.    })
  17.    [B]exports.[/B]login(req, res);
  18. }

si lo hago asi, ya no me arroja el error, pero le agregue unos mensajes por consola para ver si efectivamente traspasaba los valorres, y todo lo que veo es "undefined"

login.js
Código Javascript:
Ver original
  1. var lista = new Array();
  2.  
  3. exports.login = function(req, res){
  4.   res.render('login');
  5. };
  6.  
  7. exports.get_enviar = function(req, res){
  8.   exports.login(req, res);
  9. }
  10. exports.post_enviar = function(req, res){
  11.    var usuario = req.body.usuario;
  12.    var password = req.body.password;
  13.    console.log(usuario);
  14.    console.log(password);
  15.    lista.push({
  16.       usuario: usuario,
  17.       password: password
  18.    })
  19.    console.log(lista[0].usuario);
  20.    console.log(lista[1].password);
  21.    exports.login(req, res);
  22. }
__________________
18 laaaaargos años en FDW... y soy de los pocos que ví correr sangre! :X

Última edición por pcarvajal; 04/06/2015 a las 07:18 Razón: se actualiza codigo
  #4 (permalink)  
Antiguo 04/06/2015, 10:51
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 10 meses
Puntos: 8
Respuesta: ERROR con POST en NODE+EXPRESS

me respondo solo...

faltaba agregar esta linea al app.js
Código Javascript:
Ver original
  1. app.use(express.urlencoded());
__________________
18 laaaaargos años en FDW... y soy de los pocos que ví correr sangre! :X

Etiquetas: post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:47.