Node.js"错误:无法找到模块"

时间:2015-01-14 15:41:03

标签: javascript json node.js

我正在从lynda.com上做node.js课程,我无法找到导致"错误的原因:无法找到模块"。从我可以告诉package.json的所有内容中都有飞行模块。

到目前为止一切都在工作,所以我知道node.js已正确安装并运行。我运行此文件的方式是键入" node app.js"在命令行。此外,所有文件都在同一文件夹中。

以下是控制台日志:

C:\Users\Jonathan\Desktop\flight>node app.js

module.js:340
    throw err;
          ^
Error: Cannot find module './flight'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (C:\Users\Jonathan\Desktop\flight\app.js:1:76)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)

C:\Users\Jonathan\Desktop\flight>

以下是代码。

Package.json文件

{
  "name": "flight",
  "version": "1.0.0",
  "description": "a module for keeping track of a flight",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "JBaxter",
  "license": "ISC"
}

index.js文件

 var number, origin, destination;

 exports.setNumber = function (num){
    number = num;
 };

 exports.setOrigin = function (o){
    origin = o;
 };

 exports.setDestination = function (d){
    destination = d;
 };

 exports.getInfo = function() {
    return {
        number: number,
        origin: origin,
        destination: destination
    };
 };

app.js文件

var flight = require('./flight');

flight.setOrgin('LAX');
flight.setDestination('DCA');
flight.setNumber(462);

console.log(flight.getInfo());

任何有益的帮助。我认为package.json文件中的名称是你的模块,但也许我不对。提前致谢。

2 个答案:

答案 0 :(得分:1)

&#34; ./飞行&#34;在你的情况下不会评估为index.js。

如果您创建一个子目录:

flight
  - index.js

然后您可以要求(&#34;。/ flight&#34;)并将其评估为&#34; ./ flight / index.js&#34;。

在你的情况下,你可以做的最简单的事情是:

require("./index.js");

答案 1 :(得分:0)

你可以通过以下方式完成:

var flight = require('./index.js');

OR

var flight = require('./index');

以下代码无效,因为该节点将查找名为&#39; flight&#39;在node_modules文件夹中

var flight = require('flight');