2015-02-17 3 views
0

Сценарий моего узла.js получает запросы на отправку HTML-сообщений из расширения Google Post Postman, но он не видит пары ключ-значение. Не дает мнеNode.js не читает HTML POST-запрос

 
TypeError: Cannot read property 'username' of undefined 
    at app.get.params.QueueUrl (/home/ec2-user/Outfitr/Server/index.js:45:53) 
    at Layer.handle [as handle_request] (/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/layer.js:82:5) 
    at next (/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/route.js:110:13) 
    at Route.dispatch (/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/route.js:91:3) 
    at Layer.handle [as handle_request] (/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/layer.js:82:5) 
    at /home/ec2-user/Outfitr/Server/node_modules/express/lib/router/index.js:267:22 
    at Function.proto.process_params (/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/index.js:321:12) 
    at next (/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/index.js:261:10) 
    at serveStatic (/home/ec2-user/Outfitr/Server/node_modules/express/node_modules/serve-static/index.js:59:14) 
    at Layer.handle [as handle_request] (/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/layer.js:82:5) 

Вот мой код. Дайте мне знать, если вам нужно что-нибудь еще

app.post('/bscreateuser', function(request, response) { 
    process.stdout.write("Attempted to create a --- BBBSSSSS ---- user | "); 
    process.stdout.write("request is " + request.url); 
    process.stdout.write("username is " + request.body.username); 
    process.stdout.write("Password is " + request.body.password); 
    bscreateUser(request.query.username, request.body.password); 
    response.send('Success'); 
}); 

function bscreateUser(username, password) { 
    messageBody = 'create_user("' + username + '","' + password + '")'; 
    queueUrl = DAO_QUEUE_URL; 
    // sys.puts("--- going for BS ---"); 
    sendSQSMessage(JSON.stringify(messageBody), queueUrl); 
} 
+0

ПРЕДЛОЖЕНИЕ: посмотрите фактический контент HTTP. Существует много способов сделать это, включая [Wireshark] (https://www.wireshark.org/), [Telerek Fiddler] (http://www.telerik.com/download/fiddler/fiddler4) и [Chrome ] (https://www.google.com/chrome/) Средства разработчика – FoggyDay

+0

Не нужно ли 'request.query.username' быть' request.body.username'? – mscdex

ответ

3
bscreateUser(request.query.username, request.body.password); 

Должно быть:

bscreateUser(request.body.username, request.body.password); 

Хороший способ избежать этого в будущем:

var body = request.body; 
var username = body.username; 
var password = body.password 

А затем просто использовать имя пользователя var и пароль var в вашем коде, гораздо меньше ошибок и немного читаемость!

+1

И еще лучший способ решить эти проблемы - ознакомиться с инструментами отладки Node/HTTP. ПРЕДЛОЖЕНИЯ: [Wireshark] (https://www.wireshark.org/), [Telerek Fiddler] (http://www.telerik.com/download/fiddler/fiddler4), [Google Chrome] (https: // www .google.com/хром /). См. Также [node-inspector] (https://github.com/node-inspector/node-inspector) и страница [Joyent] (http://www.joyent.com/developers/node/debug) «Отладка» , – FoggyDay

+0

В этом была проблема. Благодаря! – NateW

Смежные вопросы