2017-06-28 13 views
1

私はWebプッシュ通知プロジェクトを進めています。クライアントからノードサーバーにユーザーサブスクリプションを送信したい。POSTリクエストの本文がありません

クライアント側のコード

function sendSubscriptionToBackEnd(subscription) { 
    return fetch('/api/save-subscription/', { 
    method: 'POST', 
    headers: { 
     'Content-Type': 'application/json' 
    }, 
    body: JSON.stringify(subscription) 
    }); 
} 

サーバー側のコード

app.post('/api/save-subscription/', function (req, res) { 
    console.log(req.body); 
} 

サブスクリプションオブジェクトは、 "エンドポイント" と "キー" と標準のサブスクリプションです。私はすでにそれを送信する前にクライアント側でサブスクリプションを印刷しようとしましたが、それは有効であるようです。

問題は、サーバー側の「req」オブジェクトに「本体」キーが含まれていないことです。だから、私はサーバー側でサブスクリプションを取得する方法を知らない。

答えて

3

まだ持っていない場合は、body-parserミドルウェアが必要な場合があります。

これは、HTTPリクエストの本文を解析し、処理するための素晴らしい解析オブジェクトを提供します。サーバー側のコードで

const bodyParser = require('body-parser'); 
const express = require('express'); 

const app = express(); 
app.use(bodyParser.json()); // <-- this guy! 

app.post('/api/save-subscription', (req, res) => { 
    console.log(req.body); 
    return res.sendStatus(201); 
}); 
+0

は魔法のように働きました!私はノードに慣れていない。ありがとう! –

+2

私たちはすべて一点で新しくなりました。あなたの学習には最高の運があります! –

関連する問題