2015-09-24 2 views
0

Я продолжаю получать сообщение об ошибке, в котором говорится, что он не может найти модуль reddit.js. У меня есть папка, называемая «маршруты» (без кавычек) в моем каталоге. В этой папке у меня есть reddit.js, который является промежуточным программным обеспечением. В первом файле ниже я изменил его на var reddit = require ('./ routes/reddit.js'), и я получил сообщение об ошибке, в котором говорится, что «throw new TypeError (« Router.use() требует функции промежуточного программного обеспечения, но получил ^ TypeError: 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; в конец файла.

  • Не называйте next() после отправки ответа с помощью res.send(docs);

  • Маршруты не статическое содержимое. Удалить app.use(express.static('routes'));

  • app.use(express.static('/public')); обрабатывает весь статический контент внутри папки /public. Вам не нужно, чтобы добавить app.use(express.static('/public/js'));

Смежные вопросы