console.log écrit à stdout
, afin que vous puissiez l'écouter et faire tout avec les données.
console.log ([données] [arguments])
Affiches à stdout avec saut de ligne.
https://nodejs.org/api/console.html
Essayez avancer ce code.
const spawn = require('child_process').spawn
const ls = spawn('ls', ['-lh', '/usr'])
const collectedData = []
ls.stdout.on('data', (data) => {
console.log('stdout: ' + data.toString())
collectedData.push({ event: 'CONSOLE_LOG', data })
// now just make the client consume collectedData in real-time
// or on refresh
})
ls.stderr.on('data', (data) => {
console.log('stderr: ' + data.toString())
})
ls.on('exit', (code) => {
console.log('child process exited with code ' + code.toString())
})
processus enfants sont construits dans Prélevez un échantillon à travers ces documents ici: https://nodejs.org/api/child_process.html
Je ne sais rien au sujet de votre configuration, mais si vous voulez super facile dans Express
app.get('/logging', (req, res) => {
res.send(collectedData)
})
Faites que le client l'atteigne toutes les 2000ms ou quelque chose.
Sinon, vous devez créer un socket avec le serveur et envoyer les mises à jour au client, et les gérer dans le client.
Vous pouvez également configurer TCP et UDP prises assez rapidement dans Node.js. Faites des recherches sur Google.
J'ai un exemple de code que je peux vous donner:
/**
* SERVER
*/
// Load dgram module
const dgram = require('dgram')
// Create new socket
const server = dgram.createSocket('udp4')
// Listening event
server.on('listening',() => console.log('UDP Server listening'))
// Message event
server.on('message', (msg, rinfo) => {
console.log(`${rinfo.address}:${rinfo.port} - ${msg}`)
});
// Start UDP socket listener
const PORT = 3333
const HOST = '127.0.0.1'
server.bind(PORT, HOST)
/**
* CLIENT
*/
const client = dgram.createSocket('udp4')
const ip = require('ip')
client.send('Sample message', PORT, HOST, (err) => {
if (err) throw err
console.log(`UDP message sent: ${ip.address()}`)
client.close()
})