2016-12-30 108 views
1

我正在使用Mongoose和nodejs編寫一個API。發佈請求永遠不會發送,只是發送獲取

我users.js看起來如下:

var express = require('express'); 
var router = express.Router(); 
var user = require('../models/users.js'); 


router.post('/',function(req, res, next) { 
    console.log("made a post"); 

      var user2 = new user();  // create a new instance of the Bear model 
      user2.firstName = req.body.firstName; // set the bears name (comes from the request) 
     user2.lastName=req.body.lastName; 
     user2.email=req.body.email; 

      user2.save(function(err) { 
       if (err) 
        res.send(err); 

      console.log("User created"); 
      }); 


     }) 

//The model acts as our user object...this returns all users. 
    .get('/', function(req, res, next) { 
     console.log("sending a get request"); 
     user.find(function(err, users) { 
      if (err) 
       res.send(err); 

      res.json(users); 
     }); 

     }) 

module.exports = router; 

當我發送GET請求,它完美的作品。但是,我正在嘗試開發POST請求。我發送一個請求,如以下幾點:

http://localhost:4000/users?firstName=Han&[email protected][email protected] 

,我收到我的控制檯如下:

sending a get request 
GET /users?firstName=Han&[email protected][email protected] 
200 15.522 ms - 1365 

而且我收到了我的瀏覽器GET請求的輸出。

我是新來的節點,並希望得到一些幫助。

謝謝。

回答

2

您正在將參數作爲URL參數,而您的POST API從請求體讀取參數。

Here是POST參數的解釋。 另外,如果您尚未使用它,請使用postman發送請求。

+0

我在這裏跟着一個教程: https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-4和他的發佈請求似乎這樣工作? –

+1

再次看看,所有發佈的請求都將其數據作爲x-www-form-urlencoded在POST請求的主體中發送,而不是URL參數: https://cask.scotch.io/2014/04/node- api-postman-post-create-bear.png –

+0

這種發送參數的方式通常在GET請求中使用,因爲GET中沒有主體,只有標題。 –