【问题标题】:Express JS Multiple Route files not workingExpress JS 多路由文件不起作用
【发布时间】:2018-03-09 06:42:25
【问题描述】:

我使用 AngularJS 和 NodeJS 作为后端。我有 2 个路由文件 - route1.api.jsroute2.api.js。它们在 server.js 中使用如下:

const route1Api= require("./src/api/route1.api");
const route2Api= require("./src/api/route2.api");

app.use("/api/route1/", route1Api);
app.use("/api/route2/", route2Api);

route1.api.jsroute2.api.js 具有类似的代码,如下所示:

const router = express.Router();
router.post("/whatever", (req, res) => {
// Code
});
module.exports = router;

我正在从 2 个不同的 Angular 数据服务文件访问这些路由:

route1.data.service.js

postRoute1() {
    console.log("Route1");
    return this._http
      .post("/api/route1/whatever", postData)
      .map(result => console.log(result));
}

route2.data.service.js

postRoute2() {
    console.log("Route2");
    return this._http
      .post("/api/route2/whatever", postData)
      .map(result => console.log(result));
}

现在,问题是 route1 工作正常,但 route2 却不行。 postRoute2() 方法只适用于 console.log() 行,但不能超过此行。可能是什么问题?

route2.api.js 代码:

router.post("/whatever", (req, res) => {
  console.log("API hit");
  User.find({}, function(err, user) {
    if (err) res.status(500);
    if (!user) res.status(204);
    res.status(200).json(user);
  });
});

【问题讨论】:

  • 路由正常,你有什么错误吗?
  • @RahulSharma 没有错误。 “Route2”被写入控制台。但是 API 没有被调用。
  • 试试这个并检查你是否收到回复app.use("/api/route2/", route1Api);
  • @RahulSharma 没有。仍然没有回应。 API 根本没有被命中。
  • 你也可以上传route2Api代码吗?

标签: angularjs node.js express routing express-router


【解决方案1】:

修改postRoute2()方法为:

postRoute2() {
    console.log("Route2");
    return this._http
      .post("/api/route2/whatever", postData)
      .subscribe(result => console.log(result));
}

【讨论】:

    猜你喜欢
    • 2021-04-25
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 2013-11-20
    • 1970-01-01
    相关资源
    最近更新 更多