2015-09-24 49 views
0

我不斷收到一個錯誤,說它找不到模塊reddit.js。我的目錄中有一個名爲「routes」(不帶引號)的文件夾。在那個文件夾中我有reddit.js,它是中間件。在下面的第一個文件中,我確實將其更改爲var reddit = require('./ routes/reddit.js'),並且我收到了錯誤消息:「throw new TypeError('Router.use()require middleware function but got一個 ^ 類型錯誤:Router.use()需要中間件的功能,但在Function.use「表達錯誤 - 無法找到模塊 - 靜態文件

得到了一個對象 當我把代碼如下所示我得到這個錯誤:

錯誤:無法找到模塊'reddit.js'


我的app.js文件包含以下代碼:

var express = require('express'); 
var app = express(); 
var fs = require('fs'); 
var reddit = require('reddit.js'); 

app.use ('/', reddit); 
app.use(express.static('public')); 
app.use(express.static('public/js')); 
app.use(express.static('public/images')); 
app.use(express.static('routes')); 

我reddit.js文件包含以下代碼:

var express = require ('express'); 
var request = require ('request'); 
var reddit = express.Router(); 

reddit.get(function (req, res, next) { 
    request('https://www.reddit.com/r/Showerthoughts/hot.json',function(error, response, body){ 
     console.log(body); 
     var docs = JSON.parse(body).response; 
     //var titles = []; 
     console.log(docs); 
     res.send(docs); 
     next; 
    }); 
}); 

我究竟做錯了什麼?

+1

如果'reddit.js'是在同一目錄'app.js',那麼你需要使用'要求(」 ./ reddit.js');'。 Node.js不會自動查找當前目錄。 – jfriend00

回答

1

下面提到是不正確

  • 你不需要有.js擴展,包括文件的事情的清單。使用require('/path/to/reddit');而不是require('reddit.js');

  • 您需要導出reddit.js中的路由器實例。在文件末尾添加module.exports = reddit;

  • 使用res.send(docs);

  • 途徑發出響應後不要叫next()不是靜態的內容。刪除app.use(express.static('routes'));

  • app.use(express.static('/public'));處理/public文件夾內的所有靜態內容。你並不需要添加app.use(express.static('/public/js'));