javascript - Node.jsexpress.Router导入新路由时出现ERR_MODULE_NOT_FOUND

标签 javascript node.js express types

我遇到了一个奇怪的错误。我只是创建一个新文件夹来分隔我的路线。

在内部,我使用 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. 我的项目内的文件结构:

FILE STRUCTURE

  • package.json文件配置:
  • PACKAGE.JSON FILE

    如您所见,我使用 "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 中的 targetmodule 设置为 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/

    相关文章:

    javascript - 为什么我的获取响应不会在我的调度中传递?

    javascript - 正则表达式返回匹配数组

    javascript - HTML5 中的多 Canvas 层绘制应用

    javascript - 如何推迟读取直到写入完成?

    javascript - 代码将自身循环三次并运行 "If"语句两次和 "Else"语句一次

    node.js - 如何让 i18next-node 以正确的方式显示变音符号?

    javascript - 浏览器刷新后,AngularJS 设置的 Cookie 将被忽略

    javascript - 将缓冲区从 ReadStream 更改为实际文件

    javascript - JSX 外部元素的条件修改

    javascript - 拖放文件上传在 Firefox 中不起作用