Je construis une application Web qui peut afficher des informations système sur un site Web. Il affiche les informations sur le matériel (temps, RAM, CPU, vitesses du ventilateur, etc.) du PC sur lequel le «serveur» fonctionne. Il ouvre un serveur web affichant cette information accessible sur le réseau. J'utilise météore, blazejs et systeminformation (https://github.com/sebhildebrandt/systeminformation) pour ce faire. Les informations système affichent les informations obtenues du serveur sous forme de nombres longs. Ceci est mon html:moyen le plus simple de mettre en forme de longs chiffres en javascript vers la bonne unité?
<template name="main">
{{#if subscriptionsReady}}
<p>cpu manufacturer: {{get (static) 'data.cpu.manufacturer'}}</p>
<p>cpu brand: {{get (static) 'data.cpu.brand'}}</p>
<p>cpu model: {{get (static) 'data.cpu.model'}}</p>
<p>cpu speed: {{get (static) 'data.cpu.speed'}}</p>
<p>cpu cores: {{get (static) 'data.cpu.cores'}}</p>
<p>total memory: {{get (dynamic) 'data.mem.total'}}</p>
<p>free memory: {{get (dynamic) 'data.mem.free'}}</p>
<p>used memory: {{get (dynamic) 'data.mem.used'}}</p>
<p>active memory: {{get (dynamic) 'data.mem.active'}}</p>
{{/if}}
qui montre ce sur le site
Je voudrais formater les longs numéros pour ressembler « mémoire totale X.YZ Go "et similaire pour différentes données. Y at-il une bibliothèque facile à utiliser là-bas que je pourrais utiliser pour cela?
Aussi voici mon serveur fichier javascript
Meteor.startup(() => {
si.getStaticData(Meteor.bindEnvironment(function(data){
Data.update({type: 'static'}, {data: data, type: 'static'}, {upsert: true})
}))
setInterval(Meteor.bindEnvironment(function() {
si.getDynamicData(Meteor.bindEnvironment(function(data){
Data.update({type: 'dynamic'}, {data: data, type: 'dynamic'}, {upsert: true})
}))
}), 1000)
Meteor.publish('data', function(){
return Data.find({})
})
});
et mon client javascript
let subscriptions = [
Meteor.subscribe('data')
]
Template.main.helpers({
get: function(obj, what) {
console.log(obj)
return _.get(obj, what)
},
dynamic: function() {
return Data.findOne({type: 'dynamic'})
},
static: function() {
return Data.findOne({type: 'static'})
},
subscriptionsReady: function() {
for (let sub of subscriptions){
if (!sub.ready()) return false
}
return true
}
})
Il existe un formateur 'bytes à X' qui peut vous aider à démarrer: http://codeaid.net/javascript/convert-size-in-bytes-to-human readable-format- (javascript) # comment-1 –