BodyParserは、クライアントが要求するボディ内のコンテンツを解析するために使用され、JSONエンコード処理、URLエンコード処理、およびファイルアップロード処理を内部的に使用します。
ファイルのアップロードの例を次に示します。
1.htmlページを作成します
コードコピーは次のとおりです。
<!doctype html>
<html>
<head lang = "en">
<メタcharset = "utf-8">
<title>ファイルをサーバーにアップロード</title>
<script type = "text/javascript">
function uploadfile(){
var formdata = new formdata();
var files = document.getElementById( "ファイル")。ファイル;
var file = files [0];
formdata.append( "myfile"、file);
var xhr = new xmlhttprequest();
xhr.open( "post"、 "index.html"、true);
xhr.onload = function(e){
if(this.status == 200)
document.getElementById( "result")。innerhtml = this.response;
};
xhr.send(formdata);
}
</script>
</head>
<body>
ファイルを選択してください:<入力タイプ= "ファイル" id = "ファイル" name = "file" />
<入力型= "ボタン" value = "upload file" onclick = "uploadfile();" />
<div id = "result"> </div>
</body>
</html>
上記のxmlhttprequestオブジェクトとformdataオブジェクトは詳細に説明されていません。これらの2つのオブジェクトを使用して、ユーザーが選択したファイルをサーバーにアップロードします。
サーバー側にapp.use(Express.bodyParser())ミドルウェアを使用した後、クライアント要求を表すhttp.incomingmessage、つまりRESオブジェクトにはファイルプロパティがあります。
server.jsサイドコード:
コードコピーは次のとおりです。
var Express = require( "Express");
var fs = require( "fs");
var app = Express();
app.use(express.bodyParser());
app.get( "/index.html"、function(req、res){
res.sendfile(__ dirname+"/1.html");
});
app.post( "/index.html"、function(req、res){
var file = req.files.myfile;
fs.readfile(file.path、function(err、data){
if(err)res.send( "ファイル操作の読み取り不合格");
それ以外{
fs.writefile(file.name、data、function(err){
if(err)res.send( "ファイル書き込み操作が失敗しました。");
else res.send( "ファイルアップロードに正常に");
})
}
});
});
app.listen(1337、 "127.0.0.1"、function(){
console.log( "リスニングを開始");
});
サーバーを起動した後、ブラウザを実行します。
ファイルを選択します:
アップロードの成功という言葉がブラウザに表示されます。
サーバー側にアップロードしたファイルもあります。
[アップロード]をクリックした後:
さらに、BodyParseは、クライアントAJAXとURLの処理によって提出されたJSONデータを受け入れることができます。