Vinson

Vinson

npm 包

发表于 2023-09-01
Vinson
阅读量 24

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
评论
来发一针见血的评论吧!
表情

快来发表评论吧~

推荐文章
  • 测试文章

    20点赞10评论

  • webpack5(一)

    20点赞10评论