请教 express 中的路由问题,望高人指点

2016-06-06 09:34:37 +08:00
 CareiOS

在网上我看到有路由的用例

app.get('/polls/polls', routes.list);
app.get('/polls/:id', routes.poll);
app.post('/polls', routes.create);

一般都是写到 app.js 中的,

我想把 polls 下的这三个请求写到一个 polls.js 的路由文件中。我在 app.js 中写的是:

app.use('/polls', polls);

polls.js 里:

router.get('/polls', function(req, res, next) {
});

router.get('/:id', function(req, res, next) {});
router.post('/', function(req, res, next){});

我测试第二个有 id 的接口,无法路由到。 请问这种写法可以吗?

2594 次点击
所在节点    Node.js
3 条回复
visonme
2016-06-06 09:55:03 +08:00
可以使用 Express.Router.
在 polls.js 文件中这样写

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

router.get("/" ,(req,res) =>{
//todo
});

//其他类同

exports.routers = router;
Trim21
2016-06-06 09:56:09 +08:00
我记得好像第二种写法有一个额外的 require ?
dphdjy
2016-06-06 09:58:23 +08:00
上面写法没错,不过建议改成这样
POST/GET /polls
GET /polls/:id

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/283760

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX