Nodejs Basic Develop

本文介绍Node.js中如何获取系统信息如CPU数量、内存使用情况等,并演示了如何利用Node.js进行基本的文件操作,包括读写、追加、判断文件存在性和删除文件。

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');
更多精彩,欢迎继续关注我的优快云!











【轴承故障诊断】加权多尺度字典学习模型(WMSDL)及其在轴承故障诊断上的应用(Matlab代码实现)内容概要:本文介绍了加权多尺度字典学习模型(WMSDL)在轴承故障诊断中的应用,并提供了基于Matlab的代码实现。该模型结合多尺度分析与字典学习技术,能够有效提取轴承振动信号中的故障特征,提升故障识别精度。文档重点阐述了WMSDL模型的理论基础、算法流程及其在实际故障诊断中的实施步骤,展示了其相较于传统方法在特征表达能力和诊断准确性方面的优势。同时,文中还提及该资源属于一个涵盖多个科研方向的技术合集,包括智能优化算法、机器学习、信号处理、电力系统等多个领域的Matlab仿真案例。; 适合人群:具备一定信号处理和机器学习基础,从事机械故障诊断、工业自动化、智能制造等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①学习并掌握加权多尺度字典学习模型的基本原理与实现方法;②将其应用于旋转机械的轴承故障特征提取与智能诊断;③结合实际工程数据复现算法,提升故障诊断系统的准确性和鲁棒性。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注字典学习的训练过程与多尺度分解的实现细节,同时可参考文中提到的其他相关技术(如VMD、CNN、BILSTM等)进行对比实验与算法优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值