私はノードjを初めて使い、1週間前に学習を始めました。node.jsの新しいTypeError(最初の引数は文字列またはバッファでなければなりません)
私は以下のエラーまし小規模サーバー作成中:
_http_outgoing.js:543 スロー新しいTypeError例外を(「最初の引数は、文字列やバッファでなければなりませんが」); ^
例外TypeError:最初の引数はServerResponse.OutgoingMessage.endで文字列またはバッファ でなければなりません(_http_outgoing.js:543:11)call_backfunctionで (/ユーザ/アマン/ドキュメント/学ぶ/ノード/ APP3 /サーバー.js:36:8)イテレータの (/Users/Aman/Documents/learn/node/app3/server.js:57:6) /Users/Aman/Documents/learn/node/app3/server.js :68:6 FSReqWrap.oncompleteで(fs.js:82:15)
function loadAlbums(req, res){
var call_backfunction = function(err, album_list){
if(err){
res.writeHead(503, {"Content-Type": "text/plain"});
res.end("There are no albums in folder. " + err + "\n");
}
else{
res.writeHead(200, {"Content-Type": "text/json"});
res.end(album_list);
}
}
albumLoader(req, res, call_backfunction);
}
function albumLoader(req, res, callback){
var path = req.core_url.pathname.substr(1, 6);
fs.readdir(path, function(err, files){
if(err){
callback(err);
return;
}
else{
var dirs = [];
(function iterator(i) {
console.log(dirs);
if(i>=files.length){
callback(null, dirs);
return;
}
fs.stat(path + "/" + files[i], function(err, stat){
if(err){
callback(err);
return;
}
else if(stat.isDirectory){
dirs.push(files[i]);
}
iterator(i+1);
});
})(0);
}
});
}
その私が変更されたときに正常に動作するコールバックパラメータに
callback(null, dirs.toString());
私は実際にここでロジックを理解できませんでした。文字列やバッファが必要なのはなぜですか?
ここではres.write()は文字列またはバッファパラメータのみを取る赤ですが、res.end()の場合もそうですか? – Aman