簡體   English   中英

Node.js express.Router ERR_MODULE_NOT_FOUND 導入新路由時

[英]Node.js express.Router ERR_MODULE_NOT_FOUND when import the new routes

我遇到了一個奇怪的錯誤。 我只是在創建一個新文件夾來分隔我的路線。

在里面,我使用express.Router API 創建了路由,並導出了路由器本身。

下面是代碼在post-routes.ts

import express from 'express';

const router = express.Router();

router.get( '/', ( req, res ) =>
{
    res.send( 'This is working' );
} );

export default router;

好的。 我現在要做的就是將它導入我的index.ts並為我post-routes.ts文件創建一個根路由。

如果您發現我的方法有問題,請告訴我。

index.ts文件:

import express from 'express';
import cors from 'cors';
import postRouter from './routes/post-routes';

const PORT = process.env.PORT || 5000;

app.use( '/posts', postRouter );


app.use( express.json( { limit: '30mb' } ) );
app.use( express.urlencoded( { limit: '30mb', extended: true } ) );
app.use( cors() );

app.listen( PORT, () => console.log( `listening at ${ PORT }` ) );

好的。 現在為了提供盡可能多的信息,我將插入以下內容:

  1. 我的項目中的文件結構:

文件結構

  1. package.json文件配置:

包.JSON 文件

如您所見,我使用"type": "module"能夠在我的節點應用程序中使用導入。 至於 typescript,我沒有收到任何編譯錯誤,所以index.ts看到post-routes.ts文件,所以我希望index.js也會看到post-routes.js文件。 但是服務器會拋出下面的錯誤。 怎么會這樣?

Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'E:\Github\hospytal-fasion\server\dist\routes\post-routes' imported from E:\Github\hospytal-fasion\server\dist\index.js

除了確保在tsconfig.json中將targetmodule設置為esnext ,請確保在導入中包含文件擴展名。 即嘗試更改以下行:

import postRouter from './routes/post-routes';

import postRouter from './routes/post-routes.ts';

暫無
暫無

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

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