0

単純なNode?JSアプリケーションを弾力のあるbeanstalkにアップロードしようとしています。すべての依存関係は私のpackage.jsonファイルにリストアップされており、アプリケーションは8081からnginxプロキシ経由でリッスンしています。Node.js AWS配備エラー:モジュールが見つかりません

ノードログファイルから次のエラーが送出されています。モジュールはサーバー上に異なって配置されていますか?

ここ

Server running at http://127.0.0.1:8081/ module.js:471 throw err; './routes/FtseData' at Function.Module._resolveFilename (module.js:469:15) at Function.Module._load (module.js:417:25) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object. (/var/app/current/routes.js:7:20) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) module.js:471 throw err; ^

Error: Cannot find module './routes/FtseData' at Function.Module._resolveFilename (module.js:469:15) at Function.Module._load (module.js:417:25) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object. (/var/app/current/routes.js:7:20) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) module.js:471 throw err; ^

は私server.jsファイルです

var express = require('express'); 
var basicAuth = require('express-basic-auth') 
var bodyParser = require('body-parser') 
var cors = require('cors'); 
var app = express(); 

app.use(cors()); 

app.get('/', function (req, res) { 
// res.send('Hello World'); 
    res.sendFile(__dirname + '/views/index.html'); 
}) 

var routes = require('./routes'); 
app.use('/api', routes); 


var server = app.listen(8081, function() { 
    var host = server.address().address 
    var port = server.address().port 

    console.log("App listening at http://%s:%s", host, port) 
}) 

routes.js

var express = require('express'); 
var basicAuth = require('express-basic-auth') 
var app = express(); 
var router = express.Router(); 

//var profCtrl = require('./routes/profileController'); 
var ftseDataCtrl = require('./routes/FtseData'); 
var ftseDivCtrl = require('./routes/FtseDiv'); 

//routes not needing auth 
router.route('/FtseDivGet').get(ftseDivCtrl.get); 
//routes needing auth 
router.use(basicAuth({ 
    users: { 'admin': 'supersecret' } 
})) 
//router.route('/FtseDataScrape').get(ftseDataCtrl.scrape); 
router.route('/FtseDivScrape').get(ftseDivCtrl.scrape); 
//http://localhost:8081/api/profile 

module.exports = router; 

package.json

{ 
    "name": "StockTracker", 
    "version": "1.0.0", 
    "description": "Stock-Tracker", 
    "dependencies": { 
    "express": "*", 
    "express-basic-auth": "*", 
    "request": "*", 
    "cheerio": "*", 
    "body-parser": "*", 
    "cheerio-tableparser": "*", 
    "cors": "*", 
    "csv-load-sync": "*"   
    }, 
    "scripts": { 
    "start": "node server.js" 
    } 
} 
+0

使用を一致させるために必要なエラー

var ftseDataCtrl = require('./routes/FTSEData'); 

ケース '( './ FtseData ')が必要です'の代わりに '必要(' ./ルート/ FtseData')'の場合の原因となりました'FTseData'は' routes'フォルダにあり、 'routes.js'も同じルートフォルダにあります – Santosh

+0

routes.jsはserver.jsのルートフォルダにあります。 FtseData.jsは/ routesフォルダーにあります。私はパスが間違っていた場合、私のローカルマシン上で動作しませんでしたが、それは – user2202098

+0

私はrequireステートメントにファイル拡張子を入れなければならなかった。 require( './ routes/FtseData');する必要があります( './ routes/FtseData.js'); – user2202098

答えて

1

私のファイルが/routes/FtseData.jsました

これは、ファイル

var ftseDataCtrl = require('./routes/FtseData'); 
+0

しかし、nodejsのドキュメントは、自動的に.js、.json、最後に.node [ここ](https://nodejs.org/api/modules.html#modules_file_modules)を追加しようとしていることを示唆しています – Santosh

+1

私はもう一度それをテストしました。あなたは正しいです。この問題は、ファイル名の大文字小文字に見えます。ありがとう – user2202098

関連する問題