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

麦克风

我不断收到一条错误消息,提示它找不到模块reddit.js。我的目录中有一个名为“ routes”(不带引号)的文件夹。在该文件夹中,我有作为中间件的reddit.js。在下面的第一个文件上,我确实将其更改为var reddit = require('./ routes / reddit.js'),并且收到错误消息,提示“抛出新的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;
    });
});

我究竟做错了什么?

斯瓦拉吉·吉里(Swaraj giri)

下面提到的是不正确的内容列表

  • 您不需要.js包含文件的扩展名。使用require('/path/to/reddit');代替require('reddit.js');

  • 您需要在中导出路由器实例reddit.jsmodule.exports = reddit;在文件末尾添加

  • next()使用发出响应后请勿致电res.send(docs);

  • 路由不是静态内容。去掉app.use(express.static('routes'));

  • app.use(express.static('/public'));处理/public文件夹内的所有静态内容您不需要添加app.use(express.static('/public/js'));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章