Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。如果你想创建自己的服务,那么Node.js是一个非常好的选择。今天就来介绍一下 Node.js 环境搭建及简单应用。
1.安装 Node.js
首先下载安装 Node.js,官方网站下载即可。
官方地址:https://nodejs.org/en/
安装好后可以通过命令提示符查看安装版本是否正确,如下如所示:
这时你有可能会问到 npm 是什么?
简单来说 npm 就是 Node.js 的包管理工具(package manager),Node.js 已经内置 npm,不用单独安装。具体可以参考廖雪峰老师的介绍,这里就不再展开说明。
廖雪峰老师介绍地址:https://www.liaoxuefeng.com/wiki/1022910821149312/1023025597810528
2.安装 WebStorm
WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。这里我们将会用它来编写服务端代码,同样去官方网站下载即可,不过软件需要激活,具体激活方式可以自行百度,强力建议支持正版!我下载的是 2019.2 版本的,后台回复「WebStorm」可以获取安装包和汉化包。
官方地址:https://www.jetbrains.com/webstorm/download/#section=windows
3.下载 express 和 msgpack
首先来了解一下 express 和 msgpack 是什么?
express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用。Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能。
msgpack 是一个基于二进制高效的对象序列化 Library,用于跨语言通信。它可以像 JSON 那样,在许多种语言之间交换结构对象,但是它比JSON更快速也更轻巧。
express 官方地址:http://expressjs.com/
msgpack GitHub 官方地址:https://github.com/kawanet/msgpack-lite
可以通过「npm install --save express」命令安装 express:
可以通过「npm install --save msgpack-lite」命令安装 msgpack:
4.安装好模块后,就可以进行编程了,在工程目录下新建 JavaScript 文件命名为“Api.js”,编写代码如下:
//Api.js
var express = require('express');
var msgpack = require("msgpack-lite");
var app = express();
// 编码编码接口
app.get('/pack/:a', function(req, res){
var jsonVal = req.param("a"); // 接受浏览器传过来的值
var buffer = msgpack.encode(jsonVal); // 对接受的值进行编码
var bufferStr = buffer.toString("hex");
res.send(bufferStr);
});
// 解码解码接口
app.get('/unpack/:b', function(req, res){
var unPackVal = req.param("b"); // 接受浏览器传过来的值
var buffer = new Buffer(unPackVal,"hex");
var data = msgpack.decode(buffer); // 对接受的值进行解码
res.send(data);
});
app.listen(3000); // 监听 3000 端口
5.编写好后,右击文件,点击 Run 进行运行,可以看到控制台服务器已经打开了:
6.在浏览器输入「http://localhost:3000/pack/{var:"游戏开发小白变怪兽"}」获取编码:
7.之后可以将编号复制到解码接口后面进行解码「http://localhost:3000/unpack/d9237b7661723a22e6b8b8e6888fe5bc80e58f91e5b08fe799bde58f98e680aae585bd227d」:
可以看到,经过解码输入的文字又恢复了原来的样子,感兴趣的小伙伴快来尝试下吧!
我是「Super于」,立志做一个每天都有正反馈的人!