# node

node 事件驱动 非阻塞I/O

  • JavaScript+ECMAScript+WEBAPI(dom/bom)
  • nodejs+nodejsAPI

# node热更新

cnpm install -g supervisor

使用 supervisor 命令启动 app.js:supervisor app.js

npm install nodemon --save-dev,现在一般使用nodemon来自动重启服务

cnpm install -g nodemon

# yarn

在powellshell安装 chocolatey

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

安装yarn

npm install -g yarn

# node删除包

cnpm i -g rimraf 
rimraf xxx

# nodeapi

  1. 核心类 不需要引包,可直接使用
  • buffer
  • module
  • process
  1. 内置类 有,但是需要主动引入
  • os
  • fs
  • path
  • http
  • event
  1. 第三方库

# assert断言

const assert = require("assert");

function sum (a,b){
	assert(arguments.length==2,'参数需要2个')
}

sum(3)
//会报异常

# os系统相关

const os = require("os");

console.log(os.cpus())
//查看cpu(可能有多核)
const os = require("os")
const mem = os.freemem() / os.totalmem()
console.log(`内存占用率${mem}`)
console.log(os.totalmem())

# 进程

const http=require('http');
const cluster=require('cluster');
const os=require('os');
const process=require('process');

if(cluster.isMaster){
  for(let i=0;i<os.cpus().length;i++){
    cluster.fork();
  }

  console.log('主进程');
}else{
  let server=http.createServer((req, res)=>{
    console.log(process.pid);

    res.write('aaaa');
    res.end();
  });

  server.listen(9080);

  console.log('服务器开好了,在9080上');
}

# serve-index

可在浏览器查看public目录

cnpm i serve-index
'use strict'

var http = require('http');
var https = require('https');
var fs = require('fs');

var serveIndex = require('serve-index');

var express = require('express');
var app = express();

//顺序不能换
app.use(serveIndex('./public'));
app.use(express.static('./public'));

var options = {
	key  : fs.readFileSync('./cert/1557605_www.learningrtc.cn.key'),
	cert : fs.readFileSync('./cert/1557605_www.learningrtc.cn.pem') 
}

var https_server = https.createServer(options, app);
https_server.listen(443, '0.0.0.0');

var http_server = http.createServer(app);
http_server.listen(80, '0.0.0.0');

# node安装的一些问题

  • node-sass很难安装
    • node的版本可以更换更新的版本
    • 淘宝镜像源
    • 清楚原本下载失败的node-sass,重新更新
    • 配置.npmrc, 在npm i 的时候,如果项目根目录下有这个文件,会自动从这个镜像地址下安装node_modules,不需要手动设置镜像地址
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
registry=https://registry.npm.taobao.org
  • npm的源头切换
# 设置
npm config set registry https://registry.npm.taobao.org
# 查询
npm config get registry

npmrc (opens new window)

最后更新: 8/27/2021, 9:10:17 AM