使用 NodeJs 和 ES6 的简单 Restful Api。
注意事项:本文中的所有 JavaScript 代码均遵循 ECMA-Script 2015 标准编写。如果您之前了解 JavaScript 和 ES6,那就更好了。我知道 NodeJS 很火爆,您肯定想立即上手,但您知道吗?我们只需要一个先决条件选项卡即可。
先决条件:
1. 了解 JavaScript
2. 了解 EcmaScript 2015,通常称为 ES6
3. 对 NodeJs 是什么以及它如何工作感到好奇
4. 喜欢用 JavaScript 编写 hello world 程序(LOL)
5. 已安装 NodeJs
6. 已安装 Postman
好了,先不说前提条件,我们开始深入探讨吧。首先,我们要明确区分什么是 Node.js,什么不是。看看这段朋友之间的对话,看看你能不能猜出谁是对的:
马克:嘿,大卫,这是什么语言?
大卫:嘿,马克,这是 NodeJs。
马克:这是一个新的 JavaScript 框架吗?
David:哦,是的,这是一个新的 JavaScript 框架,或者应该说,也许是一个库(虽然我不太确定),但它最初是由 Ryan Dahl 于 2009 年编写的,大约是在第一个服务器端 JavaScript 环境 Netscape 的 LiveWire Pro Web 推出十三年后。初始版本仅支持 Linux 和 Mac OS X。它的开发和维护由 Dahl 领导,后来由 Joyent 和开源社区赞助……等等等等。
史蒂夫:谷歌搜索但是我刚刚从谷歌看到 NodeJs 是一个运行时环境,既不是一个框架也不是库,但是 NodeJs 是一个运行时环境是什么意思呢?
大卫:嗯,我不知道,你知道吗,我们打电话Johnson
问问他。
*Now that's my cue as Johnson to blow their mind.*
NodeJs 既不是库也不是框架,而是一个运行时环境。对于那些想知道运行时环境是什么的人,我会用一个不太远的亲戚 java 的例子。在 Java 中运行代码并进行编译之前,您需要一个 Java 运行时环境(JRE),它大多数时候都打包在 Java 开发工具包(JDK)中,如果系统上没有安装此工具,您可能无法编译和运行编写良好的 Java 代码。本质上,(JRE)使我们能够在系统上运行 Java 程序,NodeJs 也是如此,我们当时所知道的 Javascript 只能在浏览器上运行,但 NodeJs 使我们能够在 PC 上运行 Javascript 程序,实际上帮助我们在浏览器之外运行 Javascript。要明白我在系统上安装 NodeJs 之前的意思,请启动 Visual Studio Code,编写一个控制台语句并尝试运行它,是的,您肯定会看到一个错误,现在安装 NodeJs 并重新加载 vscode 并尝试再次运行同一个程序,看看会发生什么。
现在,我们相信我们已经明确了 Node.js 的本质,我们不得不提一下,Node.js 运行在 Chrome 的 V8 引擎上。V8是JavaScript执行引擎,最初是为 Google Chrome 浏览器构建的。谷歌于 2008 年将其开源。V8 用 C++ 编写,它将JavaScript 源代码编译为本机机器码,而不是实时解释执行。
好的,回到今天的工作,创建一个 Node API。
使用 NodeJs 和 ES6 创建一个简单的 Restful API
首先,我们需要在我们的系统上安装 Nodejs(如果您还没有这样做的话)。
下载 NodeJs👉这里。
安装后启动代码编辑器,让我们开始创建我们的 api。
创建一个项目目录,我将它命名为 nodeApi
在项目目录中创建一个 index.js 文件
打开命令窗口并导航到您的项目目录,或者我应该说 CD 进入您的项目目录
进入项目目录后,运行 npm init,您可以单击输入完成所有提示,并使用默认设置 npm 设置您的项目,或者您可以编辑作者和描述等内容,您可以在创建 package.json 文件后在此部分之后进行编辑。
完成上述步骤后,检查您的项目文件夹,已添加一个新文件 package.json,您可以在此文件中进行如上所述的更改。
现在让我们开始编写 API。Node.js 有一个名为 HTTP 的内置模块,它允许 Node.js 通过超文本传输协议 (HTTP) 传输数据。要包含 HTTP 模块,请使用 require() 方法:
在您的 index.js 文件中输入以下内容;
const http = require('http');
const port = 3000;
const hostname = '127.0.0.1';
const server = http.createServer((req,res)=>{
res.statusCode = 200;
res.setHeader('Content-Type','text/plain');
res.end('Hello World\n');
});
server.listen(port,hostname,()=>{
console.log(`Serving running at http://${hostname}:${port}/`);
});
因此,根据上面的☝️,我们将使用 http 模块中的 createServer 方法来创建一个 Http 服务器。传递给 http.createServer() 方法的函数将在有人尝试访问端口 3000 上的计算机时执行。该函数有两个参数,req
和res
,分别代表request
和response
。保存代码,返回命令提示符,然后使用此命令运行我们的项目, node index.js
。
现在我们的服务器正在监听端口 3000,将提示符上的 URL 复制到浏览器或邮递员并向其发送请求,您应该看到以下内容;
在 Node 上创建服务器并使其监听请求其实很简单。现在让我们创建应用程序用户用来与系统通信的端点。这也很简单,在代码编辑器中输入以下代码即可:
const http = require('http');
const server = http.createServer((req,res) => {
if(req.url === '/'){
res.send('Welcome');
}
if(req.url === '/courses'){
res.send('welcome to courses');
}
});
server.listen(3000);
console.log('Server listening at port 3000...');
在创建服务器时,我们会监听端点上的请求,当收到请求时,我们会检查re.url
以确定系统应该给出什么响应。再次启动服务器,这次使用 Postman 向这些端点发送请求http://127.0.0.1:3000/
,http://127.0.0.1:3000/courses
您应该会看到我们发送的响应,分别是“欢迎”和“欢迎参加课程”。
但是这样创建端点会非常混乱且难以组织,而且在代码中迷失的可能性很高,这就是 expressJs 作为建立在 NodeJs 之上的框架发挥作用的地方,还有其他框架,如 sailsjs、Koa 等。
返回命令提示符并使用此命令安装 express npm install express --save
,然后输入
现在要使用 express,我们必须导入它,然后使用随附的一些方法来创建端点。
在编辑器中输入以下代码;
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Welcome');
});
app.get('/courses', (req, res) => {
res.send('welcome to courses');
});
const hostname = '127.0.0.1';
const port = 3000;
app.listen(port, () => {
console.log(`Serving running at http://${hostname}:${port}/`);
});
现在,使用 NodeJS 编写 API 端点就是这么简单。代码编写完成后,按常规方式运行它node index.js
,查看代码并尝试理解其中的含义。如有任何疑问,请在评论区留言。
对于进一步的阅读,我推荐以下文章:
1. w3 Schools 的 NodeJs
2. Moz Dev Net 的 NodeJs,这也是一个我也参与贡献的教程。