我正在从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文件中的名称是你的模块,但也许我不对。提前致谢。
答案 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');