1
私は解決できない状況に直面しています。nodeJSエンコーディングの問題
var fs = require('fs');
var path = require('path');
module.exports = {
showTree: function (req, res) {
var _p;
if (req.query.entity) {
_p = path.resolve(__dirname, '../../uploads/Segmentation', req.query.entity);
} else {
_p = path.resolve(__dirname, '../../uploads/Segmentation', 'Default');
}
if (req.query.id == 1) {
processReq(_p, res);
} else {
if (req.query.id) {
_p = req.query.id;
processReq(_p, res);
} else {
res.json(['No valid data found']);
}
}
function processReq(_p, res) {
var resp = [];
var encoding = 'utf8';
fs.readdir(_p,encoding, function(err, list) {
if (typeof list !== 'undefined'){
for (var i = list.length - 1; i >= 0; i--) {
resp.push(processNode(_p, list[i]));
}
res.json(resp);
} else {
res.json(null);
}
});
}
function processNode(_p, f) {
var s = fs.statSync(path.join(_p, f));
return {
"id": path.join(_p, f),
"text": f,
"icon" : s.isDirectory() ? 'jstree-custom-folder' : 'jstree-custom-file',
"state": {
"opened": false,
"disabled": false,
"selected": false
},
"li_attr": {
"base": path.join(_p, f),
"isLeaf": !s.isDirectory()
},
"children": s.isDirectory()
};
}
}
};
問題が呼ばれるリポジトリである: "ポステàsouder"
は、ここに私のコードです。私がconsole.log(list [i])に "Poste a` souder"を取得した場合。 このエンコードの問題を解決するにはどうすればよいですか?
おかげで動作しません。奇妙なことに、2番目のパラメータにエンコーディングを追加すると、このエラーがスローされます。TypeError:コールバックは関数でなければなりません。 – musecz
はい、申し訳ありません、私の間違いです! 2番目のパラメータは 'encoding'プロパティを持つオブジェクトでなければなりません...既に更新された回答... – MarcoS
奇妙なことに私はまだ同じエラーがあります – musecz