我遇到了一个奇怪的错误。我只是创建一个新文件夹来分隔我的路线。
在内部,我使用 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"
以便能够在我的 Node 应用程序中使用导入。至于 typescript ,我没有遇到编译错误,因此 index.ts
看到 post-routes.ts
文件,所以我希望 index.js
也会看到 post-routes.js
文件。但服务器抛出以下错误。怎么会这样?
错误 [ERR_MODULE_NOT_FOUND]:找不到从 E:\Github\hospytal-fasion\server\dist\index 导入的模块“E:\Github\hospytal-fasion\server\dist\routes\post-routes” .js
最佳答案
除了确保 tsconfig.json
中的 target
和 module
设置为 esnext
之外,还应使确保在导入中包含文件扩展名。即尝试更改以下行:
import postRouter from './routes/post-routes';
至
import postRouter from './routes/post-routes.js';
关于javascript - Node.jsexpress.Router导入新路由时出现ERR_MODULE_NOT_FOUND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66661237/