表达错误 - 找不到模块 - 静态文件

时间:2015-09-24 04:40:52

标签: javascript node.js express backend static-files

我一直收到错误消息,说它无法找到模块reddit.js。我的目录中有一个名为“routes”(没有引号)的文件夹。在那个文件夹中我有reddit.js这是中间件。在下面的第一个文件中,我确实将其更改为var reddit = require('./ routes / reddit.js')并且我收到错误消息,其中显示“抛出新的TypeError('Router.use()需要中间件函数但是得到了一个             ^ TypeError:Router.use()需要中间件函数但是有一个Object     在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 个答案:

答案 0 :(得分: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'));