2016-12-30 2 views
1

Ich benutze Mongoose und nodejs, um eine API zu schreiben.Post Anfrage nie gemacht, nur sendet erhalten

Mein users.js sieht wie folgt:

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; 

Wenn ich eine Erhaltungs-Anforderung senden, es funktioniert perfekt. Ich versuche jedoch jetzt, die POST-Anfrage zu entwickeln. Ich sende eine Anfrage wie folgt zusammen:

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

und ich erhalte die folgende in meiner Konsole:

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

Und ich erhalte die Ausgabe meiner GET-Anforderung im Browser.

Ich bin neu bei Node und würde einige Hilfe mit diesem zu schätzen wissen.

Danke.

Antwort

2

Sie geben Ihre Parameter als URL-Parameter an, während Ihre POST-API Parameter aus dem Hauptteil der Anfrage liest.

Here ist Erläuterung der POST-Parameter. Verwenden Sie außerdem postman, um Anfragen zu senden, wenn Sie es nicht bereits verwenden.

+0

Ich folgte ein Tutorial hier: https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-4 und seine Post-Anfrage scheint so zu funktionieren? –

+1

Schauen Sie nochmal, alle Postanfragen senden ihre Daten als x-www-form-urlencoded im Hauptteil der POST-Anfrage, nicht als URL Params: https://cask.scotch.io/2014/04/node- api-postman-post-create-bear.png –

+0

Diese Art des Sendens von Parametern wird normalerweise in GET-Requests verwendet, da es in GET keinen Body gibt, sondern nur Header. –

Verwandte Themen