为什么 express的 router.route 不能工作?
发布于 6 年前 作者 imbamboo 2851 次浏览 来自 问答

下面这段代码,!!!不工作!!!,访问总是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 回复

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

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

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

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

回到顶部