什么是NPM模块?
NPM是Node.js的包管理工具,在NPM的官网==www.npmjs.com ==有成千上万的包可供开发者下载和使用,NPM程序会在你安装Node.js的时候安装在你的计算机里面
什么是包?
包是在Node.js中你需要引入的模块文件
下载包
下载一个包非常容易,打开命令行界面然后输入npm命令进行包的安装
包的安装npm install 包名
比如,下载用于搭建聊天室的websocket模块
npm i nodejs-websocket
使用包
下载完成后就可以通过require(“包名”)的方式进行包的引入并使用
以websocket包为例 >
var ws = require("nodejs-websocket")
// Scream server example: "hi" -> "HI!!!"
var server = ws.createServer(function (conn) {
console.log("新的连接已经建立!")
conn.on("text", function (str) {
console.log("接受到的字符串: "+str)
conn.sendText(str+"!")
})
conn.on("close", function (code, reason) {
console.log("连接已经关闭!")
})
}).listen(8080)
搭建聊天室实战
chat1.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.chatInfo {
text-align: center;
margin-top: 200px;
}
</style>
</head>
<body>
<div id="mess" class="chatInfo">正在连接...</div>
<hr>
<input id="mes" type="text" /> <input id="send" type="button" value="发送">
<script>
var username = prompt("请输入您的用户名:");
var mess = document.getElementById("mess");
if (window.WebSocket) {
var ws = new WebSocket('ws://127.0.0.1:8001');
ws.onopen = function (e) {
mess.innerHTML = "连接成功"
console.log("连接服务器成功");
ws.send("chat1");
}
ws.onclose = function (e) {
console.log("服务器关闭");
}
ws.onerror = function () {
console.log("连接出错");
}
ws.onmessage = function (e) {
var time = new Date();
mess.innerHTML += time + "发来的消息:" + e.data + "<br>"
document.querySelector("#send").onclick = function (e) {
var time = new Date();
ws.send(time + "/ <span style='color:red'>"+username+"</span>发来的信息:“" + document.querySelector("#mes").value + "”");
document.querySelector("#mes").value = "";
}
}
}
</script>
</body>
</html>
chat2.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.chatInfo {
text-align: center;
margin-top: 200px;
}
</style>
</head>
<body>
<div id="mess" class="chatInfo"></div>
<hr>
<input id="mes" type="text" /> <input id="send" type="button" value="发送">
<script>
var username = prompt("请输入您的用户名:");
var mess = document.getElementById("mess");
if (window.WebSocket) {
var ws = new WebSocket('ws://127.0.0.1:8001');
ws.onopen = function (e) {
mess.innerHTML = "连接成功"
console.log("连接服务器成功");
ws.send("chat2");
}
ws.onclose = function (e) {
console.log("服务器关闭");
}
ws.onerror = function () {
console.log("连接出错");
}
ws.onmessage = function (e) {
var time = new Date();
mess.innerHTML += time + "发来的消息:" + e.data + "<br>"
document.querySelector("#send").onclick = function (e) {
var time = new Date();
ws.send(time + "/ <span style='color:red'>"+username+"</span>发来的信息:“" + document.querySelector("#mes").value + "”");
document.querySelector("#mes").value = "";
}
}
}
</script>
</body>
</html>
chat.js
var ws = require("nodejs-websocket"); //引入websocket模块
console.log("开始建立连接...")
var chat1 = null,
chat2 = null,
chat1Ready = false,
chat2Ready = false;
var server = ws.createServer(function (conn) {
conn.on("text", function (str) {
console.log("收到的信息为:" + str)
if (str === "chat1") {
chat1 = conn;
chat1Ready = true;
conn.sendText("success");
}
if (str === "chat2") {
chat2 = conn;
chat2Ready = true;
}
if (chat1Ready&&chat2Ready) {
chat1.sendText(str);
chat2.sendText(str);
}
conn.sendText(str)
})
conn.on("close", function (code, reason) {
console.log("关闭连接")
});
conn.on("error", function (code, reason) {
console.log("异常关闭")
});
}).listen(8001)
console.log("WebSocket建立完毕");
发送情况截图效果如下
史上最短最敷衍的Nodejs免费视频教程
B站视频讲解演示地址 https://www.bilibili.com/video/BV1KT4y1g7FG/