2016-08-24 7 views
0

lernen, Express und konfrontiert mit Problem. Nachdem ich das Modul body-parser beginne, arbeite ich nicht. Alle Anforderungen sind komplizierter, Daten werden jedoch nicht analysiert.Warum POST-Anfragen nicht analysieren?

let express  = require('express'); 
let bp    = require('body-parser'); 
let dishRouter  = require('./dishRouter'); 
let app   = express(); 
let hostname  = 'localhost'; 
let port   = 8080; 

dishRouter.use(bp.json()); //don't work 

app.use('/dishes', dishRouter); 
app.use(express.static(__dirname + '/public')); 
app.listen(port, hostname, function(){ 
    console.log(__dirname); 
    console.log(`Server has running at http://${hostname}:${port}`); 
}); 

// Mein dishRouter Modul

let express = require('express'); 
let router = express.Router(); 

router.route('/') 
.all(function(req, res, next){ 
    res.writeHead(200, {'Content-type': 'text/plain'}); 
    next(); 
}) 
.get(function(req, res, next){ 
    res.end('We will dish for you'); 
}) 
.post(function(req, res, next){ 
    res.end('Will add the dish:' + req.body.name + ' with details: ' + req.body.description); 
}) 
.delete(function(req, res, next){ 
    res.end('Deleting all dishes'); 
}); 

module.exports = router; 
+1

Sind Sie sicher, dass Sie Ihre Anfragen mit 'Content-Type sind zu senden: Anwendung/json'? Wie führen Sie die Anfragen durch? – mscdex

+0

Ich benutze Postbote und wenn mein Code in Route Modul in einer Datei mit Hauptcode war, warks perfekt. Jetzt sind alle Anfragen Arbeit, aber nicht Body-Parser arbeiten. Kann im Exportmodul ein Problem auftreten? –

+0

Ich entscheide mich für dieses Problem. Problem in meinem String dishRouter.use. Wie ich denke, Objekt, das zurückgegeben express.Pouter() habe keine Methode zu verwenden. Brauchen Sie schreiben: app.use (bp.json). Herausgefunden, das ist mein Fehler. Danke euch allen. –

Antwort

0

Wie dieses Beispiel Sie nach Ruhe senden verpassen:

app.route('/book') 
    .get(function(req, res) { 
    res.send('Get a random book'); 
    }) 
    .post(function(req, res) { 
    res.send('Add a book'); 
    }) 
    .put(function(req, res) { 
    res.send('Update the book'); 
    }); 
+0

'.send()' ist nicht notwendig und dieser Code entspricht dem Code in der Frage (es sendet einen Standardstatuscode von 200, schreibt den übergebenen Inhalt in die Antwort und beendet dann die Antwort). – mscdex

Verwandte Themen