如何使用快递路由器

在先前的示例中,我们将所有路由代码都写在一个文件App.js中。但是在现实世界中,我们必须将代码分成多个文件。

我们可以创建单独的文件并导入它们,但是express提供了一种易于使用的路由器机制。

创建一个单独的名为route.js的文件(名称可以是任何东西)

使用Express创建路由器-

const express = require('express');
const router = express.Router();

出口路由器-

module.exports = router;

添加路由功能-

router.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>');
});
 router.post('/post-username', (req, res, next)=>{
   console.log('data: ', req.body.username);
   res.redirect('/');
});

与App.js中用于创建路径的功能类似,我们使用了router。

在App.js文件中导入路由器-

const route = require('./routes');

在App.js文件中添加用于使用路由器的中间件。

app.use(route);

经过这些更改,完整的App.js文件为-

const http = require('http');
const express = require('express');
const bodyParser = require('body-parser');
const route = require('./routes');
const app = express();
app.use(bodyParser.urlencoded({extended: false}));
app.use(route); app.use('/', (req, res,next)=>{
   res.send('<h1> first midleware: Hello nhooo.com </h1>');
});
const server = http.createServer(app);
server.listen(3000);

route.js

const express = require('express');
const router = express.Router();
router.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>');
});
router.post('/post-username', (req, res, next)=>{
   console.log('data: ', req.body.username);
   res.redirect('/');
});
module.exports = router;

如果出现在App.js中,则应在任何URL处理之前放置路由器中间件。因为代码执行在App.js文件中自上而下进行。

如果需要任何其他路由器,我们可以创建类似于route.js的单独文件,并将其与另一个中间件一起导入App.js中,以便使用该路由器。