2016-11-26 135 views
0

错误说“无法找到模块'./routes/index'”,但显然它在该文件夹中(即使静态设置为该文件夹时)我的路由index.js文件给出错误(模块未找到)

以下是错误:

[email protected]*censored*:/home/ubuntu/*censored*# module.js:471 
    throw err; 
    ^

Error: Cannot find module './routes/index' 
    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.<anonymous> (/home/ubuntu/*censored*/routes/index.js:7:14) 
    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) 

这里是我的目录是什么样子:

-bin 
-forbiddenDirectory 
-Node_modules 
-public 
-routes 
-----index.js 
-----users.js 
-views 
app.js 
main.js 
bundle.js 
package.json 

这是我app.js:

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

这是我index.js:

var express = require('express'); 
var router = express.Router(); 
var app = express(); 
var aws = require('aws-sdk'); 
var request = require('request'); 
var cheerio = require('cheerio'); 
var routes = require('./routes/index'); 
var fs = require('fs'); 
var url = "http://news.google.com"; 
var ep = new aws.Endpoint('censored.us-west-1.censored.com'); 
var db = new aws.DynamoDB.DocumentClient({  // Dynamo database constructor 
    "apiVersion": '2012-08-10', 
    "region": 'us-west-1', 
    "endpoint": ep, 
    "accessKeyId": 'censored', 
    "secretAccessKey": '+censored/censored' 
}); 
var dateObj = new Date(); 
var dbTimeStamp = dateObj.toLocaleString(); 

// middleware that is specific to this router 
router.use(function timeLog (req, res, next) { 
    next(); 
}); 


/* GET home page. */ 
router.get('/', function(req, res, next) { 
    res.render('index'); 
}); 

//module.exports = router; 
module.exports = function(req,res,next) { res.render('index')} 

所以这显然是在文件夹路径,但它不会读它的某些原因。我尝试了一切......我尝试将./routes/index改为./routes/index.js,然后改为./routes/,然后./routes,然后/ routes,然后尝试routes/index /,然后确定../路线/索引与之后的.js相同。我放弃了,需要你们的帮助。 谢谢。在app.js

exports.index=function(req,res,next){ 
    res.render('index'); 
} 

回答

1

你应该index.js使用此代码

app.use('/', routes.index); 
+0

我这样做,我仍然得到错误。我把: module.exports = router,function(req,res,next)res.render('index'); 最后 – Chris

+1

put'module.exports = function(req,res,next){res.render('index')}'你可以在app.js中使用'console.log(typeof routes) ' – farhadamjady

+0

我把“console.log(typeof routes);”在app.js?我这样做,但它甚至没有在终端中给出结果,因为它由于某些原因仍然被“无法找到模块./routes/index”错误覆盖 – Chris

1

尝试增加文件扩展名。因此,您在app.js中的代码将为:

var routes = require("./routes/index.js"); 
app.use('/', routes); 
+0

刚刚做到了这一点,仍然收到“无法找到模块”错误。 var routes = require(“。/routes/index.js“); – Chris

+0

您是否试图从像./routes ...这样的修补程序中删除点到/ routes或在app.use中添加点app.use('/',routes)到app.use ('./',routes)? –

+0

是的,我只是尝试了所有这些,仍然得到错误。大声笑这是令人沮丧的 – Chris

1

请删除routes = require('./ routes/index');从index.js

相关问题