post параметры.
Господа, ну как то с разбегу и об стену....
Получаю http запрос, нужно вытащить post параметры. Как бы не сложно. Много примеров.... ну вот как то так: const qs = require('querystring'); http.createServer( function(request,response){ ....... if(request.method ==="POST"){ request.on('data', function (data) { body += data.toString(); }); request.on('end', function () { console.log(qs.parse(body)); }); ........................... в результате в body получаем: ------------------------------7db738db57ad Content-Disposition: form-data; name="key" popandos ------------------------------7db738db57ad Content-Disposition: form-data; name="key1" popandos1 и после parse оно же и остается.... ( что это за данные - писать не нужно - понятно. вопрос почему не парсит. Руками самостоятельно распарсить - без проблем, но блин почему не парсит? есть какой то другой вариант или самому писать? express и подобное не предлагать С наступившим всех ))) Спасибо |
Цитата:
Сделал такую страничку... <!DOCTYPE html> <html> <head> <!-- <script src='https://code.jquery.com/jquery-latest.min.js'></script> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> <link rel="stylesheet" type="text/css" href="tmp.css" /> <script src='tmp.js'></script> --> <style> </style> <script> </script> </head> <body> <form method='post' action='http://localhost:3000'> <input name='test' type='text' /> <input name='test' type='text' /> <button>Send</button> </form> </body> </html> Такой сервер... const http = require('http'); const url = require('url'); const { parse } = require('querystring'); http.createServer((request, response) => { console.log('server work'); if (request.method == 'GET') { // GET -> получить обработать console.log(request.method); // !!!! let urlRequest = url.parse(request.url, true); // console.log(urlRequest); console.log(urlRequest.query.test); // ! GET Params if (urlRequest.query.test % 2 == 0) { response.end('even'); } response.end('odd'); } else { // POST let body = ''; request.on('data', chunk => { body += chunk.toString(); }); request.on('end', () => { console.log('body', body); let params = parse(body); console.log('params', params); console.log('params.test', params.test); response.end('ok'); }); } }).listen(3000); https://www.itgid.info/unit/nodejs?unit=nodejs-8 Вот результат работы server work body test=12345&test=asdf params [Object: null prototype] { test: [ '12345', 'asdf' ] } params.test [ '12345', 'asdf' ] Как по мне - все парсит. :-? |
О да, свершилось чудо. засунул в post какую то фигню, ну и еще хуже получил на выходе. действительно работает... ну так нихто ж не сомневался )
|
fxobject, у тебя пост запрос приходит как multipart/form-data а читать ты пытаешься как application/x-www-form-urlencoded.
|
Часовой пояс GMT +3, время: 03:36. |