CNode

为什么 express的 router.route 不能工作?

问答
Iimbamboo发布于10 年前最后回复10 年前4 回复3962 浏览0 收藏

下面这段代码,!!!不工作!!!,访问总是404

var router = express.Router();
router.route("/book/:id")
  .get(function (req, res) {
    res.json({ id: req.params.id, message: "route get" });
  })
  .post(function (req, res) {
    res.json({ id: req.params.id, message: "route post" });
  });

下面这段改用app,是正常工作

app.route("/book/:id")
  .get(function (req, res) {
    res.json({ id: req.params.id, message: "get" });
  })
  .post(function (req, res) {
    res.json({ id: req.params.id, message: "post" });
  });

这是为什么呢,第一段代码我是根据官方文档抄下来的。 谢谢解答。

查看回复

回复 (4)

O
oyosc#1·10 年前

根据官方文档的话app = express();即它是express的实例,而从express源码来看的话,它是继承了eventemitter,所以才会有这样的用法,用来处理事件,及回调;不理解的话可以看看nodejs的eventemitter模块

C
CarlosRen#2·10 年前

1 router 文件最后export了吗? 2 app.js中use这个文件了吗?

I
IchiNiNiIchi#3·10 年前

上面的代码你得让 app 去使用那个 router app.use('/', router)

I
imbamboo#4·10 年前

额。。。。有人解答一下吗,谢谢。

参与回复
登录后即可参与回复。登录