将自定义JavaScript代码导入Express/Node.js服务器时遇模块未找到错误
解决模块未找到错误的方法
核心问题原因
项目在package.json中配置了"type": "module",启用了ES模块规范,而Node.js的ES模块导入必须指定完整的文件扩展名(比如.js),你当前的导入语句缺少了.js后缀,导致Node.js无法定位到正确文件。
具体修复步骤
1. 修正导入语句的文件后缀
将TestProxy.js中的导入代码:
import { testMethod } from "./testcode";
修改为:
import { testMethod } from "./testcode.js";
2. (可选)统一模块导入风格
既然已经启用ES模块,建议把require写法改成ES模块的import,保持代码风格一致:
// 替换原来的 const express = require('express') import express from 'express'; const app = express();
3. (额外优化)调用测试方法
路由处理函数里仅写了testMethod变量,未实际调用方法,修改后才能看到预期日志输出:
app.get('/myrequest', function(req, res){ testMethod(); // 加括号调用方法 res.send('请求已处理'); // 添加响应内容,避免客户端等待超时 })
验证修复
修改完成后,重新执行node TestProxy.js启动服务器,访问http://localhost:3002/myrequest,控制台会输出in testMethod!,模块找不到的错误也会消失。
内容的提问来源于stack exchange,提问作者mcfly soft
相关产品推荐
相关产品推荐

