【问题标题】:Has node.js problems with Albert Einstein?爱因斯坦有 node.js 问题吗?
【发布时间】:2013-12-03 23:17:59
【问题描述】:

(服务器使用 node.js 和 Express 和 MySQL 在表中添加新用户)

客户:

...
console.log(options.path);
var request = http.request(options, function(res) {
  res.on('data', function(resp) {
    console.log(resp.toString());
  });   
});
request.end();  
request.on('error', function(err) {
  console.error('ERROR:' + err.message + ', code: ' + err.code);
}); 
...

第一次测试OK:

$ node test
/{"funcion":{"tabla":"usuarios","accion":"alta","ambito":"todos"},
             "dato":{"usuario_id":0,"nombre":"AlbertEinstein","dni":"00000000M",
             "usuario":"theory","password":"relativity","activo":0}}
{
  "fieldCount": 0,
  "affectedRows": 1,
  "insertId": 7,
  "serverStatus": 2,
  "warningCount": 0,
  "message": "",
  "protocol41": true,
  "changedRows": 0
}

第二个测试与第一个相同,但在 Albert 和 Einstein 之间有一个空格:

$ node test
/{"funcion":{"tabla":"usuarios","accion":"alta","ambito":"todos"},
             "dato": {"usuario_id":0,"nombre":"Albert Einstein","dni":"00000000M",
             "usuario":"theory","password":"relativity","activo":0}}
ERROR:socket hang up, code: ECONNRESET

当我发送“Albert Einstein”时,“ERROR:socket hang up, code: ECONNRESET”适用于“AlbertEinstein”!!!!!!

【问题讨论】:

  • 如果连接被重置,那么很可能是服务器逻辑的问题,那么你的服务器代码是什么?
  • 交换值。发生了什么?
  • 你能发布你的mysql表结构以及处理它的服务器代码吗?

标签: javascript node.js http express


【解决方案1】:

解决了!

是的,它讨厌阿尔伯特爱因斯坦但爱阿尔伯特%20爱因斯坦!

Client
...
options.path = encodeURI(path);
...

Server
...
valor = decodeURI(request.params.valor);
...

从不犯错的人从不尝试任何新事物。

阿尔伯特·爱因斯坦(或 Albert%20Einstein)

【讨论】:

    猜你喜欢
    • 2011-05-24
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 2016-08-13
    • 2018-01-31
    相关资源
    最近更新 更多