4

debian マシンに ( git から) ノードを新規インストールすると、奇妙な動作が発生します。問題は私のコードにあるようには見えません。Windows ではすべてが正常に動作しているためです。ファビコンの問題ではないことはすでにわかっています。

ここに私が書いたものがあります:

var app = require('express')()
  , server = require('http').createServer(app)
  , io = require('socket.io').listen(server) 
  , url = require('url')
  , qs = require('querystring')
  , request =  require('request')
  , fs = require('fs')

に続く

server.listen(3000); 
app.post('/postReload', function (req, res) {
  var fullBody = '';
  req.on('data', function(chunk) {
    fullBody += chunk.toString();
    if (fullBody.length > 1e6) {
        req.connection.destroy();  
    }
  });
  req.on('end', function() {        
    out = qs.parse(fullBody);
    vars = out.vars || ''; 
    if(out.module && out.value){ 
        // do the job
        // console.log here is done twice !
    }
    res.writeHead(200, {'Content-Type': 'text/html'}) 
    res.end(); 
 });
}); 

別の方法で書く場合:

app.post('/postReload', function (req, res) {
  // console.log here is done twice !
}

この問題はすべてのブラウザーに影響し、1 週間のテストでは何も解決しませんでした。

ここにいる誰かがアイデアを思いつきましたか?

二重のアクションは、curl、またはブラウザーによるアクセスで発生します。

4

1 に答える 1

1

マーシー・ヘクター・コレア。

これは私がsocket.ioを宣言した方法でした...私の新しいシンプルなコードは次のとおりです。

var express = require('express')
var app = express();
var server = http.createServer(app);
var io = require('socket.io').listen(server);

app.get('/', function (req, res) {
console.log('Only one time !!!')
res.end();
})

私は今うなずき続けます。

于 2012-10-16T14:32:45.060 に答える