【问题标题】:path of require module in node js work in windows but not in linuxnode js中require模块的路径在windows中有效,但在linux中无效
【发布时间】:2017-03-09 13:29:28
【问题描述】:

我的代码中有这个

var queries = require('./Queries.js');

在windows cmd中启动节点服务器就ok了。

我在 linux ec2 服务器中克隆了项目,但是当我启动服务器时 不工作

错误:找不到模块'./Queries.js'

【问题讨论】:

  • 在 Windows 上,文件名不区分大小写。在 Linux 上,文件区分大小写。您确定您的文件位于正确的位置并使用大写字母命名为Queries.js
  • 是的,这就是问题所在,谢谢

标签: javascript node.js module path require


【解决方案1】:

将我的评论变成答案,因为这似乎是您的问题:

在 Windows 上,文件名不区分大小写。在 Linux 上,文件区分大小写。对于为这两个平台编写跨平台代码的任何人来说,这是一个常见的平台差异。

因此,请确保您的文件位于正确的位置,并以准确的大小写命名为 Queries.js

我通常发现最好不要在编程文件名时使用混合大小写(总是全部小写),这样你就永远不会遇到这个问题。

【讨论】:

    【解决方案2】:

    编辑:

    验证“Queries.js”的路径

    案例 1)假设您安装了 NodeJS,您正在寻找的正确语法如下

    var queries = require('querystring');
    

    案例 2):但是,如果您在另一个 javascript 文件中引用代码,请在当前文件的顶部放置类似于以下内容的内容。

    require('./Queries.js'); //Queries.js is in the current directory
    

    require('./path/to/Queries.js'); //The path to Queries.js
    

    【讨论】:

    • 我不完全确定这会奏效。这假设它是一个安装在node_modules 中的模块。如果它在同一个目录中,如果他这样做,你的建议会起作用:var queries = require('./queries');
    猜你喜欢
    • 2014-10-23
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 2020-06-15
    • 2015-05-11
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多