javascript - 我的路由 index.js 文件给出错误(找不到模块)

标签 javascript node.js express

错误显示“找不到模块'./routes/index'”,但显然它位于该文件夹中(即使静态设置为该文件夹)

这是错误:

root@ip*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/,然后将../routes/index与.js相同。我放弃了,需要你们的帮助。 谢谢。

最佳答案

尝试添加文件扩展名。所以你在 app.js 中的代码将是:

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

关于javascript - 我的路由 index.js 文件给出错误(找不到模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40815642/

相关文章:

JavaScript:理解 for 循环中的 let 范围

javascript - 在不知道属性名称的情况下从对象数组中提取最小/最大值

javascript - 是否可以在本地 meteor 包中使用 Jade ?

javascript - Node Express 服务器无法获取 “/”

javascript - `this` 在 expressJS 路由处理程序中未定义

javascript - 如何防止应用程序继续,直到 Javascript 中的值或条件准备就绪

javascript - 为网站用户添加字体到 HTML/CSS 代码(跨浏览器)

node.js - sinon - 检查返回的响应对象是否与所需的对象匹配

node.js - 有没有 Browserify 的替代品?

node.js - 在expressjs中轻松使用辅助类