javascript 无法使用ES6导出express中的路由

64jmpszr  于 2023-05-05  发布在  Java
关注(0)|答案(2)|浏览(196)

我正在为我的项目编写后端。我已经注意到它变得非常混乱,并且一遍又一遍地重复大量代码。我决定重写所有内容并使用类。我还决定使用ES6模块进行导入。我遇到的第一个障碍是,我似乎不能让我的路线工作。

import express from 'express';
export const router = express.Router();

router.post('/test', async (req, res) => {
   'test'
});

将其导入server.js

import { router } from './routes/user.route'
server.use(router)

我得到的错误

Cannot find module
ss2ws0br

ss2ws0br1#

ES模块需要文字说明符(没有像CJS中那样的无扩展名的神奇解析)。
在原始的import语句中,指定符指向一个不存在的模块(没有名为user.route的文件-其名称为user.route.js):

import { router } from './routes/user.route'

相反,您必须提供完整路径(包括扩展名):

import { router } from './routes/user.route.js'

更多信息,请参阅Mandatory file extensions - Modules:ECMAScript模块|Node.js文档

hkmswyz6

hkmswyz62#

尝试使用带扩展名的完全限定名导入。

import { router } from './routes/user.route.js'

相关问题