给前端程序员的后端小教程

第零章 最重要的一章

前端程序员有一个优势:比较熟悉 js,而 js 是可以写后端的。 这样,可以少学一门编程语言,而专注于编程语言之外的东西。

最初,js 只能在浏览器里运行。 后来有了 Node.js。 不得不说,太多人对 Node.js 有严重的误解:Node.js 是一个 js 框架Node.js 的真实身份,正式的说法是“一个 js 运行时”,但“运行时”是什么?

简单地说,Node.js 是一个执行 js 代码的程序。 也就是说,如果我们用 js 写了一个程序,然后就可以用 Node.js 让这个程序跑起来。 比如,我们把一些代码写在一个叫 hello.js 的文件里。 如果你的电脑上已经安装 Node.js,那么你就可以:

Terminal window
node hello.js

我们可以在服务器上安装 Node.js, 就像安装 Python、Ruby 差不多, 然后把我们的 web 后端程序放到某个目录里, 然后用 Node.js 执行它, 一个 web 后端服务就起来了。

安装 Node.js

http 通信

在正式开始写代码前,应先了解一下 http 通信。

下面是一个用 axios 发送请求(创建一个用户)的例子:

1
const res = await axios.post('http://1.2.3.4:8080/user', {
2
name: 'PPz',
3
year: 3,
4
})

在底层,浏览器会发送一个 POST 请求,到 ip 为 1.2.3.4 的电脑上。
这个电脑有可能是一个家用电脑,有鼠标、键盘、显示器;
也可能是服务器机房里,某个架子上的、一台黑乎乎的长方体盒子;
也可能是某个云服务提供商(比如阿里云、腾讯云)的一台“大电脑”里的某个虚拟机;
也可能……

这个过程,跟用手机发短信很类似:

ip 为 1.2.3.4 的电脑收到数据后, 这台电脑,会把接收到的数据,交给端口号为 8080 的程序, (这台电脑上可能有很多“后端程序”,因此需要一个“编号”,也就是端口号), 等程序处理完,一般会都会回信息,比如“带饭请求已收到,但我不想给你带。over”。
这个“回信息”,在 http 通信里,叫“响应”。 响应由服务器发送给客户端,最终由 axios 交到一个叫 res 的变量里(看上面那个 axios 例子)

注意:上面的两条短信(“带饭请求”和“拒绝带饭”)中,结尾处都有一个“over”,这个老梗要在下章有伏笔。

小结

应了解:

尽管 Node.js 会在这个小教程里经常出现,但这个小教程的目的不在于介绍 Node.js,而是以 Node.js 为例来介绍后端开发。 在这里,Node.js 像一个演员,扮演“后端”这个角色,但我想给观众看的,是“后端”这个角色,而不是 Node.js 这位演员。 类似的,经典电影电视剧里,我们记住的是角色:一位出色演员,你可能想不起来她\他的真名,但能说出她\他扮演的很多角色(容嬷嬷、李达康、高启强……)。 看完这个小教程,如果你能说“我认识了后端开发”,那将是对我最大的肯定。

下一章    Hello, Node.js