一、首先安装express
二、创建example.js文件
创建myExpress.js文件
实现app.get()方法
实现post等其他方法。
实现app.all方法
中间件app.use的实现
什么是错误中间件?
学习总结
最后
一、首先安装express
npm install express
安装express是为了示范。
“已经把代码放到github:https://github.com/Sunny-lucking/HowToBuildMyExpress 。可以顺手给个star吗?谢谢大佬们。
”
二、创建example.js文件
// example.js
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
如代码所示,执行node example.js就运行起了一个服务器。
如下图所示,现在我们决定创建一个属于我们的express文件,引入的express改成引入我们手写的express。。
好了,现在开始实现我们的express吧!
创建myExpress.js文件
const express = require('express')
const app = express()
由 这两句代码,我们可以知道,express得到的是一个方法,然后方法执行后得到了app。而app实际上也是一个函数,至于为什么会是函数,我们下面会揭秘。
我们可以初步实现express如下:
// myExpress.js
function createApplication() {
let app = function (req,res) {
}
return app;
}
module.exports = createApplication;
在上面代码中,发现app有listen方法。
因此我们可以进一步给app添加listen方法:
// myExpress.js
function createApplication() {
let app = function (req,res) {
}
app.listen = function () {
}
return app;
}
module.exports = createApplication;
app.listen实现的是创建一个服务器,并且将服务器绑定到某个端口运行起来。
因此可以这样完善listen方法。
// myExpress.js
let http = require('http');
function createApplication() {
let app = function (req,res) {
res.end('hahha');
}
app.listen = function () {
let server = http.createServer(app)
server.listen(...arguments);
}
return app;
}
module.exports = createApplication;
这里可能会有同学有所疑问,为什么 http.createServer(app)这里要传入app。
其实我们不传入app,也就是说,让app不是一个方法,也是可以的。
我们可以改成这样。
// myExpress.js
let http = require('http');
function createApplication() {
let app = {};
app.listen = function () {
let server = http.createServer(function (req, res) {
res.end('hahha')
})
server.listen(...arguments);
}
return app;
}
module.exports = createApplication;
如代码所示,我们将app改成一个对象,也是没有问题的。
.

本文详细介绍了如何从零开始实现Express的核心功能,包括安装Express、创建服务器、实现app.get()、post等方法,以及中间件的实现,特别是错误处理中间件的工作原理。通过这次实践,加深了对Express框架的理解,揭示了其内部机制。
最低0.47元/天 解锁文章
3831

被折叠的 条评论
为什么被折叠?



