node.js

2020-05-31  本文已影响0人  栗子daisy

nodejs特点及应用场景

运行,调试,模块系统

在NodeJS中,Node模块允许开发者从被引入的文件中选择要暴露给外界的函数或变量。机制是通过exports对象的属性或module.exports属性进行模块暴露。NodeJS模块系统正是通过这样一种机制来避免了全局作用域的污染,从而避免了命名冲突。

const os=require('os')
const mem=os.freemem()/os.totalmem()*100
console.log(`内存占用率${mem}%`)
const cupStat = require("cpu-stat");
cupStat.usagePercent((err, percent) => {
  console.log(`CPU占用${percent.toFixed(2)}%`);
});
//1
module.exports=function(){}
//使用
const conf=require('./config');
console.log(conf);
//2
exports.rmbToDollar=function(r){return r/6}
//使用
const {rmbToDollar}=require('./currency')
console.log(rmbToDollar(20));
//3 可配置的模块
let rate;
function rmbToDollar(r){return r/rate}
module.exports=function(r){
rate=r;
return {rmbToDollar}
}
//使用
const {rmbToDollar}=require('./currency')(6)
console.log(rmbToDollar(20));

nodejs 核心api

global
process
fs

//同步,阻塞操作,不建议,不执行完不做下一步
fs.readFileSync('./XX')
//异步操作
fs.readFile('./xx',(err,data)=>{})
//异步代码同步化
1.1 promise
const {promisify}=require('util')
const readFile=promisify(fs.readFile)
readFile('./xx').then(data=>{})
1.2 10.0 fs promise API 实验性质
const {promises}=require('fs')
promises.readFile('./xx',(err,data)=>{})
2.generator
3.async await

buffer
1字=2字节(1 word = 2 byte)
1字节=8位(1 byte = 8bit)


http

const http=require('http');
http.createServer((req,res)=>{}).listen(3000)

stream

const fs=require('fs'),
rs=fs.createReadStream('./xx.js'),//读取流
ws=fs.createWriteStream('./xx2.js');//写入流
rs.pipe(ws)

简版express

路由
请求流程控制



源码逻辑



导出工厂函数


上一篇 下一篇

猜你喜欢

热点阅读