Node.js
是JavaScript
基础上发展起来的语言,所以前端开发者应该天生就会一点。一般我们会用它来做CLI工具
或者Web服务器
,做Web服务器
也有很多成熟的框架,比如Express
和Koa
。但是Express
和Koa
都是对Node.js
原生API
的封装,所以其实不借助任何框架,只用原生API
我们也能写一个Web服务器
出来。本文要讲的就是不借助框架,只用原生API
怎么写一个Web服务器
。因为在我的计划中,后面会写Express
和Koa
的源码解析,他们都是使用原生API来实现的。所以本文其实是这两个源码解析的前置知识,可以帮我们更好的理解Express
和Koa
这种框架的意义和源码。本文仅为说明原生API的使用方法,代码较丑,请不要在实际工作中模仿!
本文可运行代码示例已经上传GitHub,大家可以拿下来玩玩:https://github.com/dennis-jiang/Front-End-Knowledges/tree/master/Examples/Node.js/HttpServer
Hello World
要搭建一个简单的Web服务器
,使用原生的http
模块就够了,一个简单的Hello World
程序几行代码就够了:
const http = require('http')
const port = 3000
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain')
res.end('Hello World')
})
server.listen(port, () => {
console.log(`Server is running on http://127.0.0.1:${
port}/`)
}