表达错误 - 找不到模块 - 静态文件
express error - cannot find module - static file
我不断收到错误消息,提示找不到模块 reddit.js。我的目录中有一个名为 "routes"(不带引号)的文件夹。在该文件夹中,我有 reddit.js 这是中间件。在下面的第一个文件中,我确实将其更改为 var reddit = require('./routes/reddit.js') 并且我收到了错误消息“throw new TypeError('Router.use() requires middleware功能,但得到了
^
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()
路由不是静态内容。删除 app.use(express.static('routes'));
app.use(express.static('/public'));
处理 /public
文件夹内的所有静态内容。您不需要添加 app.use(express.static('/public/js'));
我不断收到错误消息,提示找不到模块 reddit.js。我的目录中有一个名为 "routes"(不带引号)的文件夹。在该文件夹中,我有 reddit.js 这是中间件。在下面的第一个文件中,我确实将其更改为 var reddit = require('./routes/reddit.js') 并且我收到了错误消息“throw new TypeError('Router.use() requires middleware功能,但得到了 ^ 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);
发送响应后不要调用路由不是静态内容。删除
app.use(express.static('routes'));
app.use(express.static('/public'));
处理/public
文件夹内的所有静态内容。您不需要添加app.use(express.static('/public/js'));
next()