1
私はこのノードのhttpサーバを持っています。私が渡した情報はどこに行きましたか?
/**
* Module dependencies.
*/
var http = require('http'),
fs = require('fs'),
cycle = require('./cycle.js');
/**
* Create the server.
*/
var server = http.createServer(function (req, resp) {
console.log(JSON.decycle(req));
if ('GET' === req.method && '/images' === req.url.substr(0, 7) &&
'.jpg' === req.url.substr(-4)) {
fs.stat(__dirname + req.url, function (err, stat) {
if (err || !stat.isFile()) {
res.writeHead(404);
res.end('Not Found');
return;
}
serve(__dirname + req.url, 'application/jpg');
});
} else if ('GET' === req.method && '/' === req.url) {
serve(__dirname + '/index.html', 'text/html');
} else {
resp.writeHead(404);
resp.end('Not found');
}
function serve(path, type) {
resp.writeHead(200, {'Content-Type': type});
fs.createReadStream(path).pipe(resp);
}
});
/**
* Listen.
*/
server.listen(3000);
(これは、クロックフォードのオブジェクト・印刷ユーティリティを使用しています。https://github.com/douglascrockford/JSON-js/blob/master/cycle.js)
私はこの要求でそれを打つとき、私は渡された情報項目は、リクエストに表示されません。何故なの?
RickH$ curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -H "Cache-Control: no-cache" -H "Postman-Token: 647062e3-bd38-edf0-3b3a-e56227daf94c" -d '&first_name=James&last_name=Taylor&city=Urbana&state=Illinois' "localhost:3000"
RickH$
これは大きなプロジェクトの煮詰めバージョンです。大規模プロジェクトでは、要求は別のサーバーにパイプされ、要求の内容に基づいて反応します。だから私はコンテンツが通過していることを知っていると感じる。しかし、それはどこですか?
その後----------------
/*********
Version 2 of server callback function. This one shows the full request body.
var server = http.createServer(function (req, resp) {
console.log();
console.log('=========================%==========================');
console.log();
console.log(JSON.decycle(req));
req.rawBody = '';
req.setEncoding('utf8');
req.on('data', function (chunk) {
req.rawBody += chunk;
// next();
});
req.on('end', function() {
console.log();
console.log('~~~~~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~~');
console.log();
console.log(JSON.decycle(req));
// next();
});
if ('GET' === req.method && '/images' === req.url.substr(0, 7) &&
'.jpg' === req.url.substr(-4)) {
fs.stat(__dirname + req.url, function (err, stat) {
if (err || !stat.isFile()) {
res.writeHead(404);
res.end('Not Found');
return;
}
serve(__dirname + req.url, 'application/jpg');
});
} else if ('GET' === req.method && '/' === req.url) {
serve(__dirname + '/index.html', 'text/html');
} else {
resp.writeHead(404);
resp.end('Not found');
}
function serve(path, type) {
resp.writeHead(200, {'Content-Type': type});
fs.createReadStream(path).pipe(resp);
}
});
*********/
の(あなたの情報)の体を取得するには、次のコードが必要モルダ!私たちがここにどのようになったのか知ることは有益だとわかります。ここに文脈があります。 http://stackoverflow.com/questions/18710225/node-js-get-raw-request-body-using-express – user2171796