[英]express error - cannot find module - static file
我不断收到错误消息,指出找不到模块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;
});
});
我究竟做错了什么?
下面提到的是不正确的内容列表
您不需要具有.js
扩展名即可包含文件。 使用require('/path/to/reddit');
而不是require('reddit.js');
您需要在reddit.js
导出路由器实例。 添加module.exports = reddit;
在文件末尾。
使用res.send(docs);
发送响应后,请勿调用next()
res.send(docs);
路由不是静态内容。 删除app.use(express.static('routes'));
app.use(express.static('/public'));
处理/public
文件夹中的所有静态内容。 您不需要添加app.use(express.static('/public/js'));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.