node.js 常用 npm 包
svg-captcha 生成验证码
const svgCaptcha = require('svg-captcha');
let captcha = svgCaptcha.create({
ignoreChars : 'ilo0',
color : true,
width : 100,
noise : 3
});
js
uuid 生成唯一 uid
const { v4: uuidv4 } = require('uuid');
uuidv4();
js
browserify 后台代码编译成前端
npm i -g browserify
sh
browserify 源文件[入口文件.js] -o 目标文件(编译之后的文件)
js
babel 将 es6 语法转换成 es5
还可以操作 jsx 语法 [react]。
npm i -g babel-cli 安装全局工具包
npm install babel-preset-es2015 --save-dev 开发目录下安装开发依赖
sh
–save-dev:开发依赖(主要在开发阶段使用)
在根目录下创建 .babelrc 文件
{“presets”: [“es2015”]}
babel ./src[src为es6语法的目录] -d ./dest[转换成es5的目录]
注意
转换前源代码需要放在一个目录下,根目录创建 .babelrc 文件
socket.io 协议 /websocket
socket.emit('自定义事件名','消息内容'); // 发送消息给某个客户端
socket.broadcast.emit('自定义事件名',‘消息内容’); // 发送消息给除当前客户端外的其他客户端
io.emit('自定义事件名','消息内容'); // 给所有客户端发送消息
socket.on('自定义事件名',回调函数); // 接收消息
socket.handshake.query.房间号参数名 // 接收房间号
socket.join(房间号,回调函数) // 加入不同的房间
socket.to(房间号).emit('自定义事件名',‘消息内容’); // 给指定房间号的所有客户端发送消息
js
服务端
const express = require('express');
const app = express();
const server = require('http').createServer(app);
const io = require('socket.io')(server);
const path = require('path');
server.listen(3000);
app.use(express.static(path.resolve(__dirname,'www')));
// 监听,但客服端发送请求触发
io.on('connection', (socket) => {
// 一建立连接就发给所有客户端
io.emit('back','所有的客户端都搜到消息')
// 接到消息后
socket.on('msg',(m) => {
console.log(m); // 客户端发来的消息
socket.emit('back','返回给客户端的消息')
socket.broadcast.emit('back','广播消息,除了请求的客户端以外其他都能接搜到')
io.emit('back','所有的客户端都搜到消息')
})
});
js
客户端
启动服务后,服务端会在根目录创建 socket.io.js,需要在客户端引入
<script src="/socket.io/socket.io.js"></script>
<script>
let socket = io(); // 执行 io 的构造函数
socket.emit('msg','发给服务端的消息');
socket.on('back',(m) => {
console.log(m);
})
</script>
html