res.on的end事件
发布于 11 年前 作者 marsbaiyun 11030 次浏览 最后一次编辑是 8 年前

直接上代码 server.js

var qs = require('querystring');
require('http').createServer(function (req, res) {
    var body = '';
    req.on('data', function (chunk) {
        body += chunk;
    });
    req.on('end', function () {
        res.writeHead(200);
        res.end('Done');
        console.log('\n got name \033[90m' + qs.parse(body).name + '\033[39m\n');
    });
}).listen(3000);

client.js

var http = require('http'),
    qs = require('querystring');

function send (theName) {
    http.request({
        host : '127.0.0.1',
        port : 3000,
        url : '/',
        method : 'POST'
    }, function (res) {
        res.setEncoding('utf-8');

        res.on('end', function () {
            console.log('\n \033[90m request complete!\033[39m');
            process.stdout.write('\n your name: ');
        });
    }).end(qs.stringify({name : theName}));
}

process.stdout.write('\n your name: ');
process.stdin.resume();
process.stdin.setEncoding('utf-8');
process.stdin.on('data', function (data) {
    send(data.replace('\n',''));
});

问题: 按说在client端出现your name: 的提示之后,我输入名字,按回车之后server端就会出现your name ***,而client端将会出现request complete!your name:的提示,但是为什么我的client端就是不会出现这两句话啊?

回到顶部