NodeJs 虽然是Javascript语言,但是能做服务器端语言所做的事情。比如创建监听服务,读取系统信息,读写文件等等。
1.读取CPU及内存信息
var numCPUs = require('os').cpus().length;
console.log('This computer has ' + numCPUs + 'CPUs');
var showMem = function() {
var mem = process.memoryUsage();
var format = function(bytes) {
return (bytes/1024/1024).toFixed(2)+'MB';
};
console.log('Process: heapTotal '+format(mem.heapTotal) + ' heapUsed ' + format(mem.heapUsed) + ' rss ' + format(mem.rss));
console.log('----------------------------------------');
};
showMem();结果:
PS D:\NodeJsApp> node NodeApp4.js
This computer has 4CPUs
Process: heapTotal 9.30MB heapUsed 3.85MB rss 15.02MB
----------------------------------------
更多精彩内容:
console.log(os.tmpdir())
console.log(os.hostname())
console.log(os.type())
console.log(os.platform())
console.log(os.arch())
console.log(os.release())
console.log(os.totalmem())
console.log(os.freemem())
//Returns an array of objects containing information about each CPU/core installed
console.log(os.cpus())
//Get a list of network interfaces:
console.log(os.networkInterfaces())结果:[ { model: 'Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz',
speed: 2594,
times: { user: 263421, nice: 0, sys: 478671, idle: 3216515, irq: 5312 } },
{ model: 'Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz',
speed: 2594,
times: { user: 258015, nice: 0, sys: 470390, idle: 3230062, irq: 28515 } },
{ model: 'Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz',
speed: 2594,
times: { user: 278312, nice: 0, sys: 515921, idle: 3164234, irq: 4625 } },
{ model: 'Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz',
speed: 2594,
times: { user: 293062, nice: 0, sys: 470578, idle: 3194828, irq: 4500 } } ]
{ 'Wi-Fi':
[ { address: 'fe80::605c:aa7d:b906:154',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '80:00:0b:73:9a:9c',
scopeid: 4,
internal: false },
{ address: '192.168.1.7',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '80:00:0b:73:9a:9c',
...2.事件处理(Event)
var http = require('http');
var server = http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World\n');
}).listen(8124);
server.on('connection', function (stream) {
console.log('someone connected!');
});
console.log('Server running at http://127.0.0.1:8124/');说明:
server变量保存创建的监听对象,然后为server添加一个事件-connection,当连接成功后输出信息。
结果:
1)连接前
PS D:\NodeJsApp> node NodeApp1.js
Server running at http://127.0.0.1:8124/2)连接后:
PS D:\NodeJsApp> node NodeApp1.js
Server running at http://127.0.0.1:8124/
someone connected!
另外,还可以添加一次性事件:
server.once('connection', function (stream) {
console.log('Ah, we have our first user!');
});事件监听既然可以添加,肯定也可以移除(注意这里回调函数的定义方式):
var callback = function(stream) {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);查看监听某事件的所有listener:
server.on('connection', function (stream) {
console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection'))); // [ [Function] ]3.读写文件
1)创建与读取JSON
var fs = require('fs');
fs.writeFileSync('./output.json',JSON.stringify({a:1,b:2}));
var JsonObj=JSON.parse(fs.readFileSync('./output.json'));
console.log(JsonObj);2)写入字符串到文本文件
var fs = require('fs');
fs.writeFile('message.txt', 'Hello Node', function (err) {
if (err) throw err;
console.log('It\'s saved!');
});
3)追加内容到文件
var fs = require('fs');
fs.appendFile('message.txt', 'data to append', function (err) {
if (err) throw err;
console.log('The "data to append" was appended to file!');
});4)判断文件是否存在
var fs = require('fs');
fs.exists('./1.txt', function (exists) {
console.log(exists ? "it's there" : "no passwd!");
});5)删除文件var fs = require('fs');
fs.unlinkSync('./2.txt');
console.log('successfully deleted 2.txt');更多精彩,欢迎继续关注我的优快云!
本文介绍Node.js中如何获取系统信息如CPU数量、内存使用情况等,并演示了如何利用Node.js进行基本的文件操作,包括读写、追加、判断文件存在性和删除文件。
770

被折叠的 条评论
为什么被折叠?



