在 Express 中的中间件中使用 Post 请求
我们使用 use() 函数来执行中间件。我们下面使用的示例将针对 http GET 和 POST 方法执行
const http = require('http'); const express = require('express'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.urlencoded({extended: false})); app.use('/', (req, res,next)=>{ next(); }); app.use('/add-username', (req, res,next)=>{ res.send('<form action="/post-username" method="POST"> <input type="text" name="username"> <button type="submit"> Send </button> </form>'); }); app.use('/post-username', (req, res, next)=>{ console.log('data: ', req.body.username); res.redirect('/'); }); app.use('/', (req, res,next)=>{ res.send('<h1> first midleware: Hello Tutorials Point </h1>'); }); const server = http.createServer(app); server.listen(3000);
如何仅限于 GET 或仅限于 POST http 方法等来限制中间件。
我们有类似于 use() 函数的 get() 和 post() 等函数,它们是 http 方法。
app.post('/post-username', (req, res, next)=>{ console.log('data: ', req.body.username); res.redirect('/'); });
在上述代码片段中,我们使用了 post() 函数。它会将 http 请求限制为针对 url path‘/post-username’的唯一 post 类型
get() 函数 −
app.get('/add-username', (req, res,next)=>{ res.send('<form action="/post-username" method="POST"> <input type="text" name="username"> <button type="submit"> Send</button> </form>'); });
类似于 get() 和 post(),我们有针对不同 http 请求的 delete()、patch 和 put() 函数。
使用 get() 和 post() 的 App.js 完成 −
const http = require('http'); const express = require('express'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.urlencoded({extended: false})); app.use('/', (req, res,next)=>{ next(); }); app.get('/add-username', (req, res,next)=>{ res.send('<form action="/post-username" method="POST"> <input type="text" name="username"> <button type="submit"> Send </button> </form>'); }); app.post('/post-username', (req, res, next)=>{ console.log('data: ', req.body.username); res.redirect('/'); }); app.use('/', (req, res,next)=>{ res.send('<h1> first midleware: Hello Tutorials Point </h1>'); }); const server = http.createServer(app); server.listen(3000);
执行:npm start
浏览器的输出 −
localhost:300/add-username
localhost:3000/post-username
广告