从另一个文件导入时,Express Router无法按预期工作

时间:2019-07-26 19:19:31

标签: node.js typescript express express-router

我刚开始使用Typescript和Express制作一个新项目来制作Web服务器,但是Express.Router不能正常工作。在/dir1上安装基本/hello路由时,它会告诉我/

我在做什么错了?

我已经尝试过应该是什么样的(cannot get /helloapp.use("/", routes))以及各种奇怪的组合,例如使用app.use("/", routes)和仅使用app.all("/", routes)。他们都不起作用。

src / app.ts

app.get("/", routes)

src / routes / index.ts

import express from "express";
import handlebars from "express-handlebars";
import routes from "./routes";

const app = express();

app.engine("handlebars", handlebars());

app.set("view engine", "handlebars");
app.set("views", `${__dirname}/views`);

app.use("/", routes);

export default app;

src / index.ts

import { Router } from "express";

const router = Router();

router.get("/hello", (req, res) => {
    res.send("hello");
});

export default router;

2 个答案:

答案 0 :(得分:0)

好的,您可以输入类似以下内容:

src / app.ts 作为您的基本文件:

    import express from "express";
    import handlebars from "express-handlebars";
    import routes from "./routes/index";

    const app = express();
    const PORT = 42069;

    app.engine("handlebars", handlebars());

    app.set("view engine", "handlebars");
    app.set("views", `${__dirname}/views`);

    app.use("/", routes);

    app.listen(PORT, function () {
      console.log('your node js server is running on PORT:', PORT);
    });

    export default app;

src / routes / index.ts

   import { Router } from "express";

   const router = Router();

   router.get("/hello", (req, res) => res.send("hello"));

   export default router;

答案 1 :(得分:0)

好吧,没关系,我是一个完整的白痴,在构建它之后忘记重新启动节点进程。我发布的代码完全可以正常工作。

很抱歉浪费您的时间。