在学习 Nodejs 时,我遇到了“无法获取‘地址’”问题 前几天开始学习Nodejs...
我尝试创建我的本地服务器并按其用途划分文件。
在我的 Node 项目中,有
1.index(主文件) 2.路线 3.routers文件夹(包括全局路由器、类(class)路由器...等) 4.controllers文件夹(包括全局 Controller ,类(class)路由器...等) 5.babelrc 6.package.json
这是我的index.js
import express from "express";
import routes from "./routes";
import globalRouter from "./routers/globalRouter";
import coursesRouter from "./routers/coursesRouter";
// import apiRouter from "./routers/apiRouter";
// import apiV1Router from "./routers/apiV1Router";
// import apiV2Router from "./routers/apiV2Router";
const app = express();
app.use(routes.home, globalRouter);
app.use(routes.courses, coursesRouter);
//app.use(routes.apiDocumentation, apiRouter);
//app.use(routes.apiV1, apiV1Router);
//app.use(routes.apiV2, apiV2Router);
// app.use(routes.remove, apiV2Router);
// app.use(routes.edit, apiV2Router);
// Codesanbox does not need PORT :)
app.listen(() => console.log(`Listening!`));
这是我的 globalRouter.js
import express from "express";
import routes from "../routes";
import {
home,
join,
login,
confirmAccount
} from "../controllers/globalController";
const globalRouter = express.Router();
globalRouter.get(routes.home, home);
globalRouter.get(routes.join, join);
globalRouter.get(routes.login, login);
globalRouter.get(routes.confirmAccount, confirmAccount);
export default globalRouter;
这是我的全局 Controller
export const home = (req, res) => res.send("home");
export const join = (req, res) => res.send("join");
export const login = (req, res) => res.send("login");
export const confirmAccount = (req, res) => res.send("confirm account");
我的类(class)路由器
import express from "express";
import routes from "../routes";
import { courses, _new, mine } from "../controllers/coursesController";
const coursesRouter = express.Router();
coursesRouter.get(routes.courses, courses);
coursesRouter.get(routes.new, _new);
coursesRouter.get(routes.mine, mine);
export default coursesRouter;
我的类(class) Controller
export const courses = (req, res) => res.send("courses");
export const _new = (req, res) => res.send("new");
export const mine = (req, res) => res.send("mine");
我的routes.js
//Global
const HOME = "/";
const JOIN = "/join";
const LOGIN = "/login";
const CONFIRM_ACCOUNT = "/confirm-account";
//Courses
const COURSES = "/courses";
const NEW = "/courses/new";
const MINE = "/courses/mine";
//Api
const API = "/api";
const API_DOCUMENTATION = "/api/documentation";
//Api V1
const API_V1 = "/api/v1";
const API_V1_BUY = "/api/v1/buy";
const API_V1_REFUND = "/api/v1/refund";
//Api V2
const API_V2 = "api/v2";
const API_V2_REMOVE = "/api/v2/remove";
const API_V2_EDIT = "/api/v2/edit";
const routes = {
home: HOME,
join: JOIN,
login: LOGIN,
confirmAccount: CONFIRM_ACCOUNT,
courses: COURSES,
new: NEW,
mine: MINE,
api: API,
apiDocumentation: API_DOCUMENTATION,
apiV1: API_V1,
apiV2: API_V2,
apiV1Buy: API_V1_BUY,
apiV1Refund: API_V1_REFUND,
apiV2Remove: API_V2_REMOVE,
apiV2Edit: API_V2_EDIT
};
export default routes;
我不认为路线有问题,但是......
当我单独测试全局路由器时, 它有效((例如)“localhost:4000/”结果:home或“本地主机:4000/join”结果:join) 但是当我解除对类(class)路由器的评论并搜索“localhost:4000/courses”时,它没有...并抛出结果“无法获取/courses”..
我需要帮助来解决问题...
最佳答案
在您的主路由器中,您将以“/courses”开头的每个请求路由到类(class)路由器,并且类(class)路由器将应答与“/courses”本身匹配的请求,因此您的API端点实际上在“/courses/”下可用培训类”。您可能希望将类(class)路由器中的路径更改为 .get("/"
...
关于javascript - 在学习 NodeJs 时,我遇到了 "cannot get ' 地址“”问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60333511/