Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   POST в NodeJS+Express (https://javascript.ru/forum/node-js-io-js/58564-post-v-nodejs-express.html)

Vladimirtishenko 29.09.2015 11:36

POST в NodeJS+Express
 
Всем привет вот уже второй день борюсь в Express Не могу нормально принять POST.

Модель:
Contacts.prototype.sendMessage = function(datas) {

    var xhr = this.xhr(),
        url = "/send_msg";

    var data = new FormData();
    data.append("text", datas.text);
    data.append("user_id", datas.userId);
    data.append("friends", datas.friend);


    xhr.onreadystatechange = function() {
        if (xhr.status == 200 && xhr.readyState == 4) {
            window.postMessage({
                sendImages: true
            }, "*");
        }
    }

    xhr.open("POST", url, true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(data);


}


app.js:

Скопировал то что нужно не стал вставлять весь код.

var jsonParser = bodyParser.json()
var urlencodedParser = bodyParser.urlencoded({ extended: false })

app.post('/send_msg', urlencodedParser, function(req, res, next){
  console.log(typeof req.body);
  console.log(req.body);
});


Пробовал уже разными способами, даже без присвоение переменным парсера. в Extended писал значение true. Ну и многое другое что связано с bodyParser.

Вывод консоли:

http://joxi.ru/5mdGJ9RuXdRyr1

typeOf говорит что это обьект но доступа к его свойствам нет.
Если пробовать парсить как стороку и обрабатывать через IndexOf тоже не дает...

Как быть кто может посоветовать?

werty1001 01.10.2015 20:43

Я не уверен, но скорей всего дело в new FormData() .
Цитата:

FormData использует такой же формат на выходе, как если бы мы отправляли обыкновенную форму с encoding установленным в "multipart/form-data".
А bodyParser multipart не понимает.

deivan 02.10.2015 21:15

какая-то странная у вас инициализация бодипарсера..
а почему не:
var bodyParser   = require('body-parser');
...
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
...
app.get( '/', routes.index);

?...


Часовой пояс GMT +3, время: 06:52.