【发布时间】:2018-03-09 06:42:25
【问题描述】:
我使用 AngularJS 和 NodeJS 作为后端。我有 2 个路由文件 - route1.api.js 和 route2.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.js 和 route2.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