如何修复错误无法找到 nodejs 的模块

问题描述

我在 .js 文件中创建了一个函数,我正在尝试在应用程序构建的 get 路由中导入和使用该函数,但我不断收到此错误

internal/modules/cjs/loader.js:888
  throw err;
  ^

Error: Cannot find module './crawler/ocr-crawler.js'

这是该功能的设置方式:

async function OcrCrawlertest(){

 // some code here
}

module.exports = {OcrCrawlerTest};

这就是我的称呼:

const { OcrCrawlerTest } = require('./crawler/ocr-crawler.js');

我是 javascript 新手,所以请在解决方案中提供一些细节

如果需要,我的路径结构也设置如下:

--- main directory 
    └── app.js
    └── crawler
         └── ocr-crawler.js
    └── routes
         └── crawler.js

解决方法

尝试将 module.exports = {OcrCrawlerTest} 更改为 module.exports = OcrCrawlerTest; 并将 const { OcrCrawlerTest } = require('./crawler/ocr-crawler.js') 更改为 const OcrCrawlerTest = require('./crawler/ocr-crawler.js')

,

在您的“app.js”文件中,您可以使用以下代码。 NodeJS 将遍历您的目录以找到合适的模块。

const { OcrCrawlerTest } = require('./crawler/ocr-crawler'); // remove ".js" at the end

您可以在此document

中找到更多信息

编辑 如果您需要 routes/crawler.js 文件中的 OcrCrawlerTest,您需要提供从 routes/crawler.js 文件到 crawler/ocr-crawler.js 文件的相对路径:

const { OcrCrawlerTest } = require('../crawler/ocr-crawler');