Ich bin sehr sehr fest in diesem "fast da" Art von Problem. Ich bin neu im Programmieren, kam aber gut zurecht, bis ich auf dieses Problem stieß.Warum funktioniert meine POST-Anfrage nicht in Knoten
Also habe ich diesen POST Anruf, um einen neuen Benutzer, den ich von Facebook mit Passpost.js bekomme, wenn die "ID" nicht existiert. Hier
ist die POST-Aufruf (mit "Anfrage" Modul):
passport.use(new FacebookStrategy({
clientID: config.facebook.appID,
clientSecret: config.facebook.appSecret,
callbackURL: config.facebook.callbackURL,
profileFields: ['id', 'displayName', 'photos', 'emails', 'birthday', 'location', 'bio', 'likes.limit(100)']
},
function(accessToken, refreshToken, profile, done){
userModel.findOne({'profileID':profile.id}, function(err, result){
if(result){
done(null, result);
} else {
request({
url: 'http://localhost:3000/api/user',
qs: {id: 'profile.id',},
method: 'POST',
json: {
fullname: profile.displayName,
profilePic: profile.photos[0].value || '',
email: profile.emails[0].value || '',
birthday: profile._json.birthday || '',
location: profile._json.location.name || '',
about: profile._json.bio || '',
likes: profile._json.likes || ''
}
}, function(error, response, body){
if(error) {
console.log(error);
} else {
console.log(response.statusCode, body);
}
});
}
})
}
)
)
Ich packte den POST Anruf auf meinem Router wie folgt aus:
apiRouter.post('/api/user', secureAPIPages, function(req, res, next){
userModel.findOne({'profileID':req.query.id}, function(err, result){
if(result){
console.log('User exists already');
} else {
var newUser = new userModel({
profileID : res.query.id,
fullname : res.json.displayName,
profilePic : res.json.photos || '',
email : res.json.emails || '',
birthday : res.json.birthday || '',
location : res.json.location || '',
about : res.json.bio || '',
likes : res.json.likes || ''
});
newUser.save(function(err){
console.log('User has been saved');
})
}
})
})
ich diese bekommen von der POST Aufruf : 302 undefiniert (302 ist der statusCode und undefined ist der Rumpf des POST-Aufrufs im Anforderungsmodul).
Das ist wirklich eine zweiteilige Frage:
1) Warum ist mein POST Aufruf funktioniert nicht? 2) Sieht meine apiRouter.post Route gut aus?
Es mag etwas sehr einfaches sein, aber ich habe unzählige Stunden damit verbracht, das zu debuggen, aber ich komme wirklich nicht weiter.
Ihre Hilfe wird dringend empfohlen.
Danke, Shayan
Hey danke! Das hat mich noch einen Schritt weiter gebracht jetzt heißt es, mein req.body-Objekt sei undefiniert, ich könnte meinen Verstand verlieren, aber wenn du irgendwelche Vorschläge hast, wird es sehr geschätzt werden (übrigens wird req.body von res.json geändert, wie es angegeben wurde out von QoP in einem anderen Kommentar) –
@Shayan aktualisiert –
Begonnen zu arbeiten! Ich vermisste das Body-Parser-Modul zu lesen .body Objekt (duh) !!! Vielen Dank Mann, ich mache Ihre Antwort als die Antwort für diese als Das hat mir am meisten geholfen! –