我如何从df〜提取数据到我的网站上?
我正在创建一个饼图,该饼图显示了Linux机器上有多少可用/已使用的磁盘空间。但是,我不确定如何将数据解析到微服务网址上。帮助将不胜感激。
这是我现在的位置:
路由器:
router.route('/linux_disk').get(disk.get_linux_disk)
控制器:
function get_linux_disk(req, res, next) {
try {
var cmd = `df ~`;
exec(cmd)
rows = [];
rows.push({"Command": cmd});
if (rows.length >= 1) {
res.status(200).json(rows);
} else {
res.status(404).end();
}
} catch (err) {
next(err);
}
}
回答如下:[您可以尝试以下方法,我们为df的每个条目创建一个行对象命令创建。一旦有了这个,您应该可以从这里创建饼图:
async function get_linux_disk(req, res, next) {
try {
const result = await execPromise(`df ~`)
const lines = result.stdout.split("\n");
const keys = lines[0].split(/\s+/ig);
// Skip the header row when assigning objects..
const rows = lines.slice(1).map(line => {
// Parse each line..
const values = line.split(/\s+/ig);
return keys.reduce((o, k, index) => {
o[k] = values[index];
return o;
}, {})
});
res.status(200).json(rows);
} catch (err) {
res.status(500).send(err.message);
}
}
生成的JSON看起来像这样:
[
{
"Filesystem": "/dev/sda1",
"1K-blocks": "10253588",
"Used": "7971516",
"Available": "1741504",
"Use%": "83%",
"Mounted": "/"
}
]
我如何从df〜提取数据到我的网站上?
我正在创建一个饼图,该饼图显示了Linux机器上有多少可用/已使用的磁盘空间。但是,我不确定如何将数据解析到微服务网址上。帮助将不胜感激。
这是我现在的位置:
路由器:
router.route('/linux_disk').get(disk.get_linux_disk)
控制器:
function get_linux_disk(req, res, next) {
try {
var cmd = `df ~`;
exec(cmd)
rows = [];
rows.push({"Command": cmd});
if (rows.length >= 1) {
res.status(200).json(rows);
} else {
res.status(404).end();
}
} catch (err) {
next(err);
}
}
回答如下:[您可以尝试以下方法,我们为df的每个条目创建一个行对象命令创建。一旦有了这个,您应该可以从这里创建饼图:
async function get_linux_disk(req, res, next) {
try {
const result = await execPromise(`df ~`)
const lines = result.stdout.split("\n");
const keys = lines[0].split(/\s+/ig);
// Skip the header row when assigning objects..
const rows = lines.slice(1).map(line => {
// Parse each line..
const values = line.split(/\s+/ig);
return keys.reduce((o, k, index) => {
o[k] = values[index];
return o;
}, {})
});
res.status(200).json(rows);
} catch (err) {
res.status(500).send(err.message);
}
}
生成的JSON看起来像这样:
[
{
"Filesystem": "/dev/sda1",
"1K-blocks": "10253588",
"Used": "7971516",
"Available": "1741504",
"Use%": "83%",
"Mounted": "/"
}
]