最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

尝试使用文件夹模块时抛出错误?

网站源码admin26浏览0评论

尝试使用文件夹模块时抛出错误?

尝试使用文件夹模块时抛出错误?

[当尝试要求两个包含js文件的文件夹时,我收到一个抛出错误,返回找不到这两个文件夹。这些模块显然存在,所以我不明白如何不能要求它们。起初我以为这与js文件的内容有关,但是如果js文件中存在错误,那么肯定可以确定该错误与js文件的内容特别相关,而与js文件的内容无关。

相反,它只是简单地指出找不到模块

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

Error: Cannot find module './training'
Require stack:
- d:\nodejs_scripts\sessions\session1_05.05.20\main.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:957:15)
    at Function.Module._load (internal/modules/cjs/loader.js:840:27)
    at Module.require (internal/modules/cjs/loader.js:1019:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (d:\nodejs_scripts\sessions\session1_05.05.20\main.js:2:20)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ 'd:\\nodejs_scripts\\sessions\\session1_05.05.20\\main.js' ]
}

我调试了./training内容和./serializer内容,但都没有发现错误。因此,当尝试要求main.js中的文件夹时,必定会发生错误。有什么明显的我想念的地方吗?

提前感谢。

回答如下:

[当您尝试require()文件夹名称时,您将获得the doc中所述的这些规则:

LOAD_AS_DIRECTORY(X)
1. If X/package.json is a file,
   a. Parse X/package.json, and look for "main" field.
   b. If "main" is a falsy value, GOTO 2.
   c. let M = X + (json main field)
   d. LOAD_AS_FILE(M)
   e. LOAD_INDEX(M)
   f. LOAD_INDEX(X) DEPRECATED
   g. THROW "not found"
2. LOAD_INDEX(X)

LOAD_INDEX(X)
1. If X/index.js is a file, load X/index.js as JavaScript text.  STOP
2. If X/index.json is a file, parse X/index.json to a JavaScript object. STOP
3. If X/index.node is a file, load X/index.node as binary addon.  STOP

因此,如果您试图从require('./training')中加载main.js,则./training是目录,因此您遵循LOAD_AS_DIRECTORY()规则。它首先在该目录中查找package.json文件。您的目录屏幕截图没有显示一个。然后转到LOAD_INDEX(X),并在该目录中查找index.jsindex.jsonindex.node。您也不显示任何一个。

因此,该目录中似乎缺少四个可能的选项,因此require()放弃并报告错误。要加载目录,您需要这四个选项之一在该目录中。回顾一下,四个选项是:

package.json
index.js
index.json
index.node

而且,如果有package.json,它必须有一个“ main”字段来告诉require()要加载的内容。

发布评论

评论列表(0)

  1. 暂无评论