簡體   English   中英

外部路由在 express js 中不起作用

[英]external routing is not working in express js

這是我的 main.js 文件

import express from 'express';


// route file are import here
import router from "./user-route/admin-route.js";

// **************** global variable are define here

const app = express();
const port = 5000;

app.use(express.json());
app.use(("./user-route/admin-route.js"));
///  ***************** routing are created are here

app.get("/", (req, res) => {
  res.send("Hello from the server");
});

// ******************  server is created here

app.listen(port, () => {
  console.log("Server is Ready and Running on Port 5000");
});

這是我的外部路由文件

import express from 'express';

const router = express.Router();


const admin = (req, res, next) => {
    res.send("Hlo from the dashboard");
}

/// admin routers are defined here 


router.route("/admin").get(admin);

export default router;

如何將外部路由與 main.js 文件連接起來。 這里我使用的是模塊方法。

如果我嘗試使用 require 方法,它就可以正常工作。 我不確定,但我認為問題就在這里

app.use(("./user-route/admin-route.js"));

我認為您正在尋找與此類似的東西? 你真正缺少的是 app.use 路由部分,有兩個參數。

app.use('/admin', AdminRouter);

Main.js 文件

import express from 'express';


// route file are import here
const AdminRouter = require('./user-route/admin-route.js')

// **************** global variable are define here

const app = express();
const port = 5000;

app.use(express.json());
///  ***************** routing are created are here

app.get("/", (req, res) => {
    res.send("Hello from the server");
});

app.use('/admin', AdminRouter);


// ******************  server is created here

app.listen(port, () => {
    console.log("Server is Ready and Running on Port 5000");
});

外部路由文件

const express = require('express');
const router = express.Router();

/// admin routers are defined here

router.get('/', function(req, res, next) {
    res.send('respond with a resource');
});

module.exports = router;

是的,這就是問題:

app.use(("./user-route/admin-route.js"));

您不能將文件名傳遞給app.use()並期望它能夠工作(實際上,它會引發錯誤)。

但你很接近:

app.use(router);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM