[英]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 }` ) );
好的。 現在為了提供盡可能多的信息,我將插入以下內容:
package.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
中將target
和module
設置為esnext
,請確保在導入中包含文件擴展名。 即嘗試更改以下行:
import postRouter from './routes/post-routes';
至
import postRouter from './routes/post-routes.ts';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.