【问题标题】:Node.js not reading HTML POST requestNode.js 不读取 HTML POST 请求
【发布时间】:2015-04-18 13:39:55
【问题描述】:

我的 node.js 脚本正在接收来自谷歌 Chrome 扩展 Postman 的 HTML POST 请求调用,但它没有看到键值对。一直给我

TypeError:无法读取未定义的属性“用户名” 在 app.get.params.QueueUrl (/home/ec2-user/Outfitr/Server/index.js:45:53) 在 Layer.handle [as handle_request] (/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/layer.js:82:5) 在下一个(/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/route.js:110:13) 在 Route.dispatch (/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/route.js:91:3) 在 Layer.handle [as handle_request] (/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/layer.js:82:5) 在/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/index.js:267:22 在 Function.proto.process_params (/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/index.js:321:12) 在下一个(/home/ec2-user/Outfitr/Server/node_modules/express/lib/router/index.js:261:10) 在serveStatic (/home/ec2-user/Outfitr/Server/node_modules/express/node_modules/serve-static/index.js:59:14) 在 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);
}

【问题讨论】:

  • 建议:查看实际的 HTTP 内容。有很多方法可以做到这一点,包括WiresharkTelerek FiddlerChrome 开发者工具
  • 不应该request.query.usernamerequest.body.username

标签: html node.js postman


【解决方案1】:
 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 密码,这样更不容易出错并且更具可读性!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-07
  • 2020-05-30
  • 1970-01-01
  • 2012-08-02
  • 1970-01-01
  • 2019-11-26
  • 1970-01-01
相关资源
最近更新 更多