Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: bengy en 12 Septiembre 2016, 02:54 am



Título: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 12 Septiembre 2016, 02:54 am
no puedo mostrar la variable enviada desde ajax en la vista, ayuda

esta es mi estructura del proyecto
(https://s13.postimg.org/jsi8u284n/Sin_t_tulo.png) (https://postimg.org/image/gyf3gm5yb/)subir fotos (https://postimage.org/index.php?lang=spanish)

tengo el apps.js (servidor)
Código
  1. var express= require("express");
  2. var routes = require('./routes/index');
  3.  
  4. var path = require('path');
  5. var bodyParser=require("body-parser");
  6. var app=express();
  7.  
  8. var video = require('./node_modules/node-svm/sample/sample');
  9. app.set('view engine', 'jade');
  10. app.use(express.static(path.join(__dirname, 'public')));
  11. app.use(bodyParser.json());
  12. app.use(bodyParser.urlencoded({extended:true}));
  13. app.get("/",function(req,res){
  14. res.render("index");
  15. });
  16.  
  17.  
  18.  
  19. app.post('/servidor', function(req,res){
  20.    var factDesdeAjax=req.body.fact;
  21.     console.log(req.body.fact);
  22.     res.render('index', { title: factDesdeAjax });
  23. });
  24.  
  25. app.listen(3000);
  26.  

tengo mi vista "index.jade"
Código
  1. extends layout
  2.  
  3. block content
  4.    h1= title
  5.    span.label no existe 1 rayo zapato zanahorea karaoke Whisky software wikipedia jinete japon jabon facil frio rayo yogur habil hablar galleta gigante gentil valiente vehiculo vegetariano quebrado quemado botella bandido brazil baile patata patria palabra marcial maqueta manantial caballero temperatura tercero ubicar urgente delfin delgado danza lectura laboratorio ilusivo inadvertencia ilimitado nacido narrado racionalidad radiactivo racismo satelite septiembre obstruir oscilatorio elogioso embajada emblema abundancia kiwi
  6.  
  7.    p
  8.    li(class='hero-name')
  9.    a(href='#') #{hero}
  10.    h2 Facts
  11.    ul#facts
  12.    label(for="new-fact") Añadir nuevo fact:
  13.    textarea#new-fact
  14.    a(id='add-new-fact', href='#') Añadir
  15.    div#cnt
  16.    div#time
  17.    div#ult
  18.    div#especial
  19.    div#keydiferentes
  20.    div#keyMismos
  21.    div#keyCadaTecla
  22.    div#keyTeclasDerecho
  23.    div#keyTeclasIzquierdo
  24.    div#keyTeclasDerechoAdj
  25.    div#keyTeclasIzquierdoAdj

el layout
Código
  1. doctype html
  2. html
  3.  head
  4.    title= title
  5.    link(rel='stylesheet', href='/stylesheets/style.css')
  6.    link(rel='stylesheet', href='/stylesheets/login.css')
  7.    script(src="/javascripts/jquery-1.9.1.js")
  8.    script(type="text/javascript", src='/javascripts/forMain-Script.js')
  9.  body
  10.    block content

tengo mi ajax
Código
  1. $(window).on('load', function() {          
  2.  
  3.    var id = 'idUsuario';
  4.    $('#add-new-fact').click(function() {
  5.    var fact = $('#new-fact').val();
  6.    $.ajax({
  7.      type: "POST",
  8.      url: "/servidor",
  9.      data: JSON.stringify({ fact: fact }),
  10.      contentType: "application/json; charset=utf-8",
  11.      dataType: "json",
  12.      success: function(data) {
  13.        $('<li>').appendTo('#facts').text(fact);
  14.        $('#new-fact').val('');
  15.      },
  16.      error: function(err) {
  17.        var msg = 'Status: ' + err.status + ': ' + err.responseText;
  18.        alert(msg);
  19.      }
  20.    });
  21.    return false;
  22.  });
  23.  
  24.        });

lo que pretendo hacer  es enviar datos desde ajax y mostrarlos en la vista, pero no se envía, es muy sencillo, me lo pueden revisar???

necesito ayuda porfavor !!! ayudaaaaaaaa


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: ivancea96 en 12 Septiembre 2016, 14:25 pm
Da más información. ¿Qué ocurre con el ajax? ¿Llama al callback de error?

Con el navegador, firefox o chrome por ejemplo, haciendo click derecho -> Inspeccionar elemento, obtendrás una visión del tráfico de la red. Ahí puedes ver si se envía o no, a dónde se envía y qué respuesta tiene.


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 13 Septiembre 2016, 14:35 pm
gracias por ayudar.

aumentando mas informacion, el ajax funciona bien, la variable fact del ajax llega hasta el servidor app.js

pero yo quiero enviar/mostrar esa variable en la vista index.jade,
nota index.jade esta arriba el codigo

 aqui va mi codigo con el que pretendo enviar/mostrar la variable
Código:
app.post('/servidor', function(req,res){
   
    var factor=req.body.fact;
    res.render('index', { title: factor });
});


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: ivancea96 en 13 Septiembre 2016, 14:54 pm
Código
  1. success: function(data) {
  2.    $('<li>').appendTo('#facts').text(fact);
  3.    $('#new-fact').val('');
  4. },
¿No haces nada con los datos que te da el servidor?


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 13 Septiembre 2016, 15:07 pm
solo muestro el valor capturado, lo subo a git hub, para que lo revisen mejor?
lo modifique el app.js
Código:
app.get('/server', function(req, res, next) {
  res.render('index', { title: 'Registrosssssssssss de usuario' });
});

app.post('/servidor', function(req,res){
   
    res.redirect('/server');
   
});

me sale este error
(https://s13.postimg.org/bkiu1ap87/Sin_t_tulo.png) (https://postimg.org/image/tnbwsil2r/)sube fotos (https://postimage.org/index.php?lang=spanish)


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 13 Septiembre 2016, 16:14 pm
ya lo subi al git, espero que puedan ayudarme

https://github.com/rn3w/proyectoAjaxPost


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: ivancea96 en 13 Septiembre 2016, 16:19 pm
Vale. Pusiste:
Código
  1. dataType: "json",
Enel AJAX. Eso es que la respuesta del servidor quieres que sea json. Si la respuesta no es json (que es lo que está ocurriendo), tira error.
Si quitas ese par clave-valor, debería funcionar.


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 13 Septiembre 2016, 16:36 pm
creo que no me explique muy bien disculpas, lo que quiero hacer es enviar la variable title a la vista index.jade

solo muestro el valor capturado, lo subo a git hub, para que lo revisen mejor?
lo modifique el app.js
Código:
app.get('/server', function(req, res, next) {
  res.render('index', { title: 'Registrosssssssssss de usuario' });
});

app.post('/servidor', function(req,res){
    
    res.redirect('/server');
    
});

me sale este error
(https://s13.postimg.org/bkiu1ap87/Sin_t_tulo.png) (https://postimg.org/image/tnbwsil2r/)sube fotos (https://postimage.org/index.php?lang=spanish)


aqui va mi vista(el codigo completo de la vista esta arriba), como pueden ver aqui tengo mi variable title, ahi quiero que se muestre esto "'Registrosssssssssss de usuario'", solo para probar, por eso estoy haciendo esto: res.render('index', { title: 'Registrosssssssssss de usuario' });
Código:
block content
    h1= title                    
    span.label no existe 1 rayo zapato zanahorea karaoke Whisky software wikipedia jinete japon jabon facil frio rayo yogur habil hablar galleta gigante gentil valiente vehiculo vegetariano quebrado quemado botella bandido brazil baile patata patria palabra marcial maqueta manantial caballero temperatura tercero ubicar urgente delfin delgado danza lectura laboratorio ilusivo inadvertencia ilimitado nacido narrado racionalidad radiactivo racismo satelite septiembre obstruir oscilatorio elogioso embajada emblema abundancia kiwi
 
    p
    li(class='hero-name')


pero aun sin funcionar, si pueden lo revisan el codigo completo esta en github https://github.com/rn3w/proyectoAjaxPost


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 13 Septiembre 2016, 17:57 pm
o estoy equivocado___??? no es la manera de hacerlo??? en ese caso como lo harian_? ayuda porfavor


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: ivancea96 en 13 Septiembre 2016, 19:43 pm
(https://s13.postimg.org/bkiu1ap87/Sin_t_tulo.png) (https://postimg.org/image/tnbwsil2r/)sube fotos (https://postimage.org/index.php?lang=spanish)

Vale. Pusiste:
Código
  1. dataType: "json",
En el AJAX. Eso es que la respuesta del servidor quieres que sea json. Si la respuesta no es json (que es lo que está ocurriendo), tira error.
Si quitas ese par clave-valor, debería funcionar.

¿No es ese el HTML final que quieres generar con la vista?


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 13 Septiembre 2016, 19:58 pm
exacto, ese es el html en el que quiero mostrar la variable title, pero en vez de visualizarlo me muestra en un mensaje alert, como hacer para que se visualice?

pruebenlo https://github.com/rn3w/proyectoAjaxPost


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: ivancea96 en 13 Septiembre 2016, 20:00 pm
Pero lee el mensaje que puse:

Vale. Pusiste:
Código
  1. dataType: "json",
En el AJAX. Eso es que la respuesta del servidor quieres que sea json. Si la respuesta no es json (que es lo que está ocurriendo), tira error.
Si quitas ese par clave-valor, debería funcionar.

Pusiste que sea JSON. Como la respuesta no es JSON, te va al error en el AJAX, y ahí es donde tienes el alert.


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 13 Septiembre 2016, 20:09 pm
lo modifique asi

Código:
$(window).on('load', function() {           
           
    var id = 'idUsuario';
    $('#add-new-fact').click(function() {
    var fact = $('#new-fact').val();
    $.ajax({
      type: "POST",
      url: "/servidor",
      data: { fact: fact },
     // contentType: "application/json; charset=utf-8",
     // dataType: "json",
      success: function(data) {
        $('<li>').appendTo('#facts').text(fact);
        $('#new-fact').val('');
      },
      error: function(err) {
        var msg = 'Status: ' + err.status + ': ' + err.responseText;
        alert(msg);
      }
    });
    return false;
  });
           
        });

aun sigue sin mostrar la variable title


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: ivancea96 en 13 Septiembre 2016, 20:29 pm
¿Ahora recibe el contenido en la función success? Eso es lo primero.

Y sí, antes sí que estaba la variable title correctamente metida:
(https://s13.postimg.org/bkiu1ap87/Sin_t_tulo.png)
¿No era ese el HTML que esperabas?


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 13 Septiembre 2016, 20:38 pm
si ahora entra al succes!!! pero no visualiza la varialble title!!!

app.get('/server', function(req, res, next) {
  res.render('index', { title: 'Registrosssssssssss de usuario' });
});

Citar
¿No era ese el HTML que esperabas?
, si ese es pero no lo visualiza

me sale este error por consola

(https://s22.postimg.org/df228i68x/Sin_t_tulo.png) (https://postimg.org/image/7e4dbfjml/)subir fotos gratis (https://postimage.org/index.php?lang=spanish)


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: ivancea96 en 13 Septiembre 2016, 21:01 pm
-¿Quieres que poner ese HTML en la página? Si es así, ¿por qué no hacer un formulario y un submit sin más?

-¿Quieres otra cosa? No entiendo qué es lo que quieres. Ya recibes lo que querías en el ajax. ¿Qué más?


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 13 Septiembre 2016, 21:10 pm
disculpas, lo que quiero hacer es enviar la variable title a la vista index.jade
la variable title esta en el app.js y quiero mostrarlo en la vista index.jade




aqui va mi vista(el codigo completo de la vista esta arriba), como pueden ver aqui tengo mi variable title, ahi quiero que se muestre esto "'Registrosssssssssss de usuario'", solo para probar, por eso estoy haciendo esto: res.render('index', { title: 'Registrosssssssssss de usuario' });
Código:
block content
    h1= title                    
    span.label no existe 1 rayo zapato zanahorea karaoke Whisky software wikipedia jinete japon jabon facil frio rayo yogur habil hablar galleta gigante gentil valiente vehiculo vegetariano quebrado quemado botella bandido brazil baile patata patria palabra marcial maqueta manantial caballero temperatura tercero ubicar urgente delfin delgado danza lectura laboratorio ilusivo inadvertencia ilimitado nacido narrado racionalidad radiactivo racismo satelite septiembre obstruir oscilatorio elogioso embajada emblema abundancia kiwi
 
    p
    li(class='hero-name')


pero aun sin funcionar, si pueden lo revisan el codigo completo esta en github https://github.com/rn3w/proyectoAjaxPost

lo modifique el app.js y aqui tengo la variable "title" la cual QUIERO MOSTRAR EN LA VISTA INDEX.JADE
Código:
Código
  1. app.get('/server', function(req, res, next) {
  2.  res.render('index', { title: 'Registrosssssssssss de usuario' });
  3. });
  4.  
  5. app.post('/servidor', function(req,res){
  6.  
  7.    res.redirect('/server');
  8.  
  9. });

NOTA:
Código:
app.post('/servidor',
VIENE DESDE EL AJAX


Citar
-¿Quieres que poner ese HTML en la página? Si es así, ¿por qué no hacer un formulario y un submit sin más?

YA TENGO ESE HTML QUE SE LLAMA INDEX.JADE, EN ESE INDEX.JADE TENGO
Código:
 h1= title 
PARA MOSTRAR EL CONTENIDO DE LA VARIABLE TITLE ENVIADO DESDE APP.JS

ACA EL CODIGO https://github.com/rn3w/proyectoAjaxPost

EL CODIGO SOLO SON 5 ARCHIVOS, REVISENLO PORFAVOR


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 13 Septiembre 2016, 21:59 pm
siguiendo este tutorial
https://www.uno-de-piera.com/rutas-y-plantillas-jade-en-node-js/

(https://s16.postimg.org/x4rnjfux1/Sin_t_tulo.png) (https://postimg.org/image/yjt885w01/)subir fotos online (https://postimage.org/index.php?lang=spanish)

intento hacer algo similar a la imagen, pero no funciona


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: ivancea96 en 13 Septiembre 2016, 22:03 pm
Código:
    extends layout
     
    block content
        h1= title
        span.label no existe 1 rayo zapato zanahorea karaoke Whisky software wikipedia jinete japon jabon facil frio rayo yogur habil hablar galleta gigante gentil valiente vehiculo vegetariano quebrado quemado botella bandido brazil baile patata patria palabra marcial maqueta manantial caballero temperatura tercero ubicar urgente delfin delgado danza lectura laboratorio ilusivo inadvertencia ilimitado nacido narrado racionalidad radiactivo racismo satelite septiembre obstruir oscilatorio elogioso embajada emblema abundancia kiwi
     
        p
        li(class='hero-name')
        a(href='#') #{hero}
        h2 Facts
        ul#facts
        label(for="new-fact") Añadir nuevo fact:
        textarea#new-fact
        a(id='add-new-fact', href='#') Añadir
        div#cnt
        div#time
        div#ult
        div#especial
        div#keydiferentes
        div#keyMismos
        div#keyCadaTecla
        div#keyTeclasDerecho
        div#keyTeclasIzquierdo
        div#keyTeclasDerechoAdj
        div#keyTeclasIzquierdoAdj

(https://s13.postimg.org/bkiu1ap87/Sin_t_tulo.png)

Ese HTML se genera a partir de tu vista, y tiene el title ahí puesto.


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 13 Septiembre 2016, 22:06 pm
si, pero no se supone que deberia visualizarlo como una pagina? me ayudas a visualizarlo porfavor


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: ivancea96 en 13 Septiembre 2016, 23:10 pm
No. AJAX hace la petición, y te da el resultado (el HTML). Es lo que hace el código, es todo correcto.

Si quieres abrir una página, te sería más sencillo hacerlo directamente con un form.

Si quieres mantener ese ajax de todos modos, puedes abrir el document y meterle los datos. Para ello, te redirijo a este ejemplo: http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_doc_open (http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_doc_open)
Simplemente, pon dentro del write la respuesta del AJAX.


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 14 Septiembre 2016, 00:55 am
si o si tengo que mantener el ajax, te explico este proyecto aun es uno muy pero muy beta

asi que en ves de enviar desde ajax la variable fact tengo que enviar muchas variables, para lo cual usare json, con esas variables tengo que hacer alguna logica del negocio de mi proyecto y el resultado mostrarlo en la vista, por esa razon no puedo usar simplemente un formulario

probare el link que dejaste, muchas gracias en serio GRACIAS


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 14 Septiembre 2016, 01:12 am
es cierto, funciona, pero aun tengo una duda, por que funciona en el error ?

lo modifique asi el ajax y quedo asi:
Código
  1. $(window).on('load', function() {          
  2.  
  3.    var id = 'idUsuario';
  4.    $('#add-new-fact').click(function() {
  5.    var fact = $('#new-fact').val();
  6.    $.ajax({
  7.      type: "POST",
  8.      url: "/servidor",
  9.      data: { fact: fact },
  10.     // contentType: "application/json; charset=utf-8",
  11.      dataType: "json",
  12.      success: function(data) {
  13.        alert("si");
  14.        $('<li>').appendTo('#facts').text(fact);
  15.        $('#new-fact').val('');
  16.      },
  17.      error: function(err) {
  18.        var msg = 'Status: ' + err.status + ': ' + err.responseText;
  19.  
  20.        document.open("text/html", "replace");
  21.        document.write(err.responseText);
  22.        document.close();
  23.      }
  24.    });
  25.    return false;
  26.  });
  27.  
  28.        });

no deberia funcionar en el success?


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: ivancea96 en 14 Septiembre 2016, 01:23 am
Comentaste lo que no era:
Código:
// contentType: "application/json; charset=utf-8",
dataType: "json",
Tienes que quitar el dataType.

contentType es el contenido que tú le envías.
dataType es lo que esperas recibir del servidor. Salvo que realmente lo necesites, no lo pongas. Que yo sepa, AJAX lo suele detectar automáticamente.


Título: Re: problema con redireccionamiento, paso de variable a la vista, en nodejs
Publicado por: bengy en 14 Septiembre 2016, 03:51 am
gracias amigo, muchas gracias