2017-05-06 26 views
0

多くの時間を費やしていますが、うまくいかない例がたくさんありました。誰かがこの状況で私を助けることができれば素晴らしいだろう。だから、私がしたいのは、値を取得することですp#lessonText.lesson(style='margin-left:1%;' name='desc') #{item.description} 私は#{item.description}私のサーバー側に渡す必要があります。クライアントからサーバー側のノードに値を転送するjs

これは、今、私はちょうど私がクライアント側から渡された変数を、作成することができるかどうか、確認したいために、サーバ側でここに私のクライアントコード

form#myForm() 
    .container 
    ul 
     each item, index in items 
     #allLessons.container 
      .lessonsWrap 
      h3.lesson #{index+1} . Lesson | 
      p#lessonText.lesson(style='margin-left:1%;' name='desc') #{item.description} 
      button#butPam.btn.btn-primary(type='submit') Begin 
      .lesDescription 
       p(style='margin-left:1%;') Lecturer: #{item.author} 
       p(style='margin-left:1%;') Level: #{item.level} 

       script. 
       $('#myForm').on('submit', function(event){ 

        var createVar = $('#lessonText').text(); 
        alert(createVar); 
        $.ajax({ 
        url: '/qVal', 
        method: 'post', 
        contentType: 'application/json', 
        data: JSON.stringify({desc: createVar.val()}), 
        async: true, 
        success: function(response){ 
         console.log(response); 

        } 
        }) 

       }); 

です。

router.post('/qVal', function(req,res){ 
    console.log("server"); 
    var description = req.body.desc; 
    console.log(typeof(desc)); 
    console.log(desc); 
}); 

多分私は間違った方法を使用しています、多分私はこれにGETメソッドを使用する必要がありますか? その重要なことは、私のrouter.postがうまくいかないように見えることです。 console.log( "server")と書くと、コンソールの "server"という単語には表示されません。

+0

あなたの 'console.log(" server ");は起動していますか? – gaganshera

+0

いいえ、それはありません –

+0

ブラウザのajaxコールのネットワークタブを確認してください、そして要求のURLをチェックしてください。私は、/ qValパスの問題があると思っています。 – gaganshera

答えて

0
var querystring = require('querystring'); 

router.post('/qVal', function(req,res){ 
    req.on('data',function(data){ 
      data = querystring.parse(data.toString('utf-8')); 
      var description = data.desc; 
      console.log(typeof(desc)); 
      console.log(desc); 
    }); 
} 
+0

router.post起動していない –

+0

私のgithubレポを訪問する他のコードをもっと必要とします。https://github.com/SaifAnsari96/Rest-Server-with-pure-Node.js/blob/master/server.js – Saif

0

あなたは文字列にJSONに変換するが、サーバー上で、あなたは私が何を参照してください理由ですJSON値を取得し、データ部に、サーバーへのデータのフロントを送信するために間違った方法を行っています。

フロントエンドのAjaxリクエスト

$.ajax({ 
        url: '/qVal', 
        method: 'post', 
        contentType: 'application/json', 
        data: {desc: createVar.val()}, 
        async: true, 
        success: function(response){ 
         console.log(response); 
        } 
        }) 

ノードのJs

router.post('/qVal', function(req,res){ 
    console.log("server"); 
    console.log(JSON.stringify(req.body)); 
    console.log(req.body.desc) 
} 
+0

router.postが起動していないようです。コンソールに「サーバー」は表示されません –

0

あなたはそれがあなたのJSON文字列に、それが持っていた場合" "


を解析していますJSON.stringifyを使用してあなたはこのよう"desc"を追加する場合:

クライアント

$.ajax({ 
     url: '/qVal', 
     method: 'post', 
     data: { 
        "desc": createVar.val() 
       }, 
     async: true, 
     success: function(response){ 
     console.log(response); 
     } 
     }) 



サーバー

router.post('/qVal', function(req, res){ 
     console.log(JSON.stringify(req.body)); 
     console.log(req.body.desc) 
} 

それがサーバに正しい方法で送信されます。

+0

あなたが言ったようにすべてを行いましたが、これは私が得るものです。 http://i.imgur.com/KQJhiwa.pngクライアントから6個の空の値が得られているようです。 –

+0

多分空の値を渡して "desc"を送信しようとします: "example"送信が間違っています –

+0

例えば、 'data:{" desc ":" test "}のように何かをランダムに書くと、サーバー側に" test "という名前の文字列があります。では、h2、pなどのタグからどのように値を渡すことができるのか分かりますか? –

関連する問題