# 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
- 核心类 不需要引包,可直接使用
- buffer
- module
- process
- 内置类 有,但是需要主动引入
- os
- fs
- path
- http
- event
- 第三方库
# 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