Bez względu na to, jakie połączenie z req.params/req.query/req.body i $ .post ({..} używam, nie jestem w stanie wyodrębnić danych JSON z mojego żądania postu Jquery w ekspresowym .Wysyłanie danych jquery do Express
to mój jQuery:
$.post("/mail", {email : "[email protected]", name : "[email protected]"});
próbowałem również różne permutacje:
$.ajax({type: "POST", url: "/mail", dataType :"json", data :
{email : "[email protected]", name : "[email protected]"}});
to jest moje node.js exp ress kod:
app.post("/mail", function(req, res) {
console.log(req.body.name);
console.log(req.route);
console.log("params1: " + req.param.params);
....
Próbowałem nieskończone sposoby dostępu do danych e-mail i nazwę bez powodzenia. Byłbym zaskoczony, gdyby rozwiązanie było prostą modyfikacją wymagającą repozytorium/req.params, ale wszystko jest możliwe! Dane właśnie tam nie ma! (Nie pojawia się w moim url albo - wszystko co widzę to localhost: 1337)
req.body/req.params/req.param.params/req.params wszystko wrócićniezdefiniowanej i req. zapytanie zwraca[].
req.route powraca:
{ path: '/mail',
method: 'post',
callbacks: [ [Function] ],
keys: [],
regexp: /^\/mail\/?$/i,
params: [] }
próbowałem dodając:
app.use(express.bodyParser());
Ale, co prawda, nie w pełni zrozumieć jego cel. Każda pomoc jest bardzo doceniana.
Wesołych świąt! // Sam
Może to ci trochę pomoże? http://stackoverflow.com/questions/5710358/how-to-get-post-query-in-express-node-js –
Warstwowe oprogramowanie 'bodyParser' inicjuje' req.body' z ciała POST, więc naprawdę tego potrzebujesz. Upewnij się, że używasz go przed zamontowaniem tras (to znaczy zanim zrobisz 'app.use (app.router)' lub twoje pierwsze wywołanie 'app.get' /' app.post' etc). –
Co powiedział Linus, upewnij się, że w Twojej konfiguracji bodyParser jest ustawiony PRZED routingiem. – leepowell