2016-09-30 19 views
0

PostgreSQLデータベースにエントリを作成するためにPOSTリクエスト(postmanを使用)を送信しようとしています。しかし、現在私のPOST要求は[オブジェクト、オブジェクト]を返しています。なぜその理由が分かりません。[オブジェクト、オブジェクト]を返すPOSTリクエスト

リクエストを処理するコードは次のとおりです。

//enable the router 
app.use('/', router); 

//Create 
router.post('/api/v1/todos', (req, res, next) => { 
    const results = []; 
    console.log("Congrats you hit the create function!!"); 

    //grab data from http-request, 'complete' is from a boolean value in the database 
    const data = {text: req.query.text, complete: false }; 

    //give error if not recieving a request 
    if(!req.query.text) res.send(400, "The Request data is: " + req.query); 

    //get a prostgres client from the connection pool 
    pg.connect(connectionString, (err, client, done) => { 
    //handle connection errors 
    if (err) { 
     done(); 
     console.log(err); 
     return res.status(500).json({success: false, data: err}); 
    } 

    //SQL Query -> Insert Data 
    client.query('INSERT INTO items(text, complete) values($1,$2)', 
    [data.text, data.complete]); 

    //SQL Query -> Select Data 
    const query = client.query("SELECT * FROM items ORDER BY id ASC"); 

    //Stream results back one row at a time 
    query.on('row', (row) => { 
     results.push(row); 
    }); 

    //After all data is returned, close connection and return the results 
    query.on('end',() => { 
     done(); 
     return res.json(results); 
     //return res.json(data); 
    }); 
    }); 
}); 

そしてここでは、なぜオブジェクトを返す私のデータである私のPOST POST image

のですか?これを解決するには何ができますか?

Here is my full code

+2

ここでオブジェクトを文字列に変換します: 'res.send(400、"要求データは "+ req.query);'。オブジェクトのデフォルト文字列表現は '[object Object]'です。あなたのブラウザのコンソールに次のものを貼り付けることでそれを試してください: '("オブジェクト文字列表現: "+ {})"。 –

+0

*「これを解決するにはどうすればよいですか」*ただしないでください。他にどんなふるまいがありますか?あなたが探している答え/解決策の種類がわからない。 –

+0

@FelixKlingこれは、私が知りたかったことを教えてくれて、ありがとう!いずれにしても、私のデータベースには何も投稿されていないので、なぜ今 – user3335607

答えて

1

文字列をオブジェクトに連結すると、オブジェクトはという形式の文字列に変換されます。ここで

はあなたの問題です:if(!req.query.text) res.send(400, "The Request data is: " + req.query);

req.queryはオブジェクトである(あなたはそれをチェックしているテキストプロパティが存在する)、あなたは、そのオブジェクトに文字列を連結しています。

関連する問題