We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
static是Express自带的中间件,主要用于处理客户端对于静态文件的请求,用法如下:
示例代码:/lesson02/server.js
server.use(express.static('./static/'))
打开http://localhost:8080/index.html,即可看到页面显示。
这段代码的含义如下:
server.use(express.static('./static/')) server.get('/reg', (req, res, next) => { res.send({ error: 0, msg: '请求成功' }) })
此时中间件会直接将first文件返回到客户端,而/first接口将无法被访问。
在Express中,接口的数据需要分开处理:
Express已经自动处理了GET请求的数据,只需要通过req.query就可以获取:
server.get('/reg', (req, res, next) => { console.log(req.query) res.send({ error: 0, data: req.query }) })
POST数据可以运行命令npm install body-parser,安装中间件body-parser进行处理。
npm install body-parser
接下来分别以表单提交和Fetch提交数据,讲解一下body-parser的使用。
新建一个/lesson02/static/index.html文件,创建表单提交和Fetch请求提交代码
/lesson02/static/index.html
示例代码:/lesson02/static/index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <h3>表单提交</h3> <form action="/login" method="POST"> 用户:<input type="text" name="username" id="username"><br /> 密码:<input type="text" name="password" id="password"><br /> <input type="submit" value="表单登录"> </form> <h3>Fetch提交</h3> <input type="button" value="GET注册" id="reg"> <input type="button" value="POST登录" id="login"> <script> // 注册 document.querySelector('#reg').addEventListener('click', async function () { const response = await fetch(`/reg?username=${document.querySelector('#username').value}&password=${document.querySelector('#password').value}`) const result = await response.json() console.log(result) alert(result.msg) }) // 登录 document.querySelector('#login').addEventListener('click', async function () { const response = await fetch(`/login`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username: document.querySelector('#username').value, password: document.querySelector('#password').value }) }) const result = await response.json() console.log(result) alert(result.msg) }) </script> </body> </html>
使用bodyParser.urlencoded处理表单提交数据
// 处理表单提交,对应请求头application/x-www-form-urlencoded server.use(bodyParser.urlencoded({ extended: false }))
使用bodyParser.json处理Fetch请求数据
// 处理fetch请求,对应请求头application/json server.use(bodyParser.json())
接收处理后的数据
处理后的数据会被保存在req.body属性中,可以在路由的配置中获取数据。
路由的配置必须卸载body-parser中间件之后。
server.post('/login', (req, res, next) => { console.log(req.body) res.send({ error: 0, data: req.body, msg: '登陆成功' }) })
The text was updated successfully, but these errors were encountered:
No branches or pull requests
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。
static中间件
static是Express自带的中间件,主要用于处理客户端对于静态文件的请求,用法如下:
打开http://localhost:8080/index.html,即可看到页面显示。
这段代码的含义如下:
否则如果有请求文件名与接口同名,如有一个名为first的文件存在,而中间件的处理又在/first接口之前,如下:
此时中间件会直接将first文件返回到客户端,而/first接口将无法被访问。
接口数据处理
在Express中,接口的数据需要分开处理:
GET请求数据
Express已经自动处理了GET请求的数据,只需要通过req.query就可以获取:
POST请求数据
POST数据可以运行命令
npm install body-parser
,安装中间件body-parser进行处理。接下来分别以表单提交和Fetch提交数据,讲解一下body-parser的使用。
新建一个
/lesson02/static/index.html
文件,创建表单提交和Fetch请求提交代码使用bodyParser.urlencoded处理表单提交数据
使用bodyParser.json处理Fetch请求数据
接收处理后的数据
处理后的数据会被保存在req.body属性中,可以在路由的配置中获取数据。
路由的配置必须卸载body-parser中间件之后。
The text was updated successfully, but these errors were encountered: