gpt4 book ai didi

javascript - EXPRESS: Router.use() 需要一个中间件函数但是得到了一个对象

转载 作者:行者123 更新时间:2023-11-30 20:36:39 24 4
gpt4 key购买 nike

每当我尝试使用 app.use() 初始化路由时,从我的路由目录调用我的路由器时出现错误。我得到的错误是 Router.use() 需要一个中间件函数但得到了一个对象。我读到这可能是因为我没有正确导出模块。但是我不确定我下面的代码到底出了什么问题。

错误:

Users/name/Desktop/personal/app/server/src/node_modules/express/lib/router/index.js:458
throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
^

TypeError: Router.use() requires a middleware function but got a Object
at Function.use (/Users/name/Desktop/personal/app/server/src/node_modules/express/lib/router/index.js:458:13)
at Function.<anonymous> (/Users/name/Desktop/personal/app/server/src/node_modules/express/lib/application.js:220:21)
at Array.forEach (<anonymous>)
at Function.use (/Users/name/Desktop/personal/app/server/src/node_modules/express/lib/application.js:217:7)
at module.exports (/Users/name/Desktop/personal/app/server/src/routes/router.js:18:7)
at Object.<anonymous> (/Users/name/Desktop/personal/app/server/src/app.js:60:1)
at Module._compile (module.js:660:30)
at loader (/Users/name/Desktop/personal/app/server/node_modules/babel-register/lib/node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (/Users/name/Desktop/personal/app/server/node_modules/babel-register/lib/node.js:154:7)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Function.Module.runMain (module.js:701:10)
at Object.<anonymous> (/Users/name/Desktop/personal/app/server/node_modules/babel-cli/lib/_babel-node.js:154:22)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
[nodemon] app crashed - waiting for file changes before starting...

我的 route.js 文件包含我所有的路由方法。在 app.js 中:我使用 import router from './routes/router'; 然后调用它:router(app);

import express from 'express'
import feed from '../controllers/feed.controller'
import file from '../controllers/file.controller'
import flight from '../controllers/flight.controller'

module.exports = function (app) {

// Initializing route groups
const feedRoutes = express.Router(),
fileRoutes = express.Router(),
flightRoutes = express.Router(),
indexRoutes = express.Router();

//= ========================
// Feed Routes
//= ========================//

app.use('/feeds', feed);

app.use('/downloads', feed);

// Find all feeds
feedRoutes.get('/', feed.list_all_feeds);

// Find one feed
feedRoutes.get('/:id', feed.list_one_feed);

// Find one Audience
feedRoutes.get('/:id/:audienceId', feed.list_one_feed_audience);

// Download one Feed
feedRoutes.get('/:id/download', feed.download_one_feed);

//= ========================
// File Routes
//= ========================//

app.use('/files', file);

// Find all files
fileRoutes.get('/', file.list_all_files);

// Find one file
fileRoutes.get('/:id', file.list_one_file);

//= ========================
// Flight Routes
//= ========================//

app.use('/flights', flight);

// Find all flights
flightRoutes.get('/', flight.list_all_flights);

// Find one flight
flightRoutes.get('/:id', flight.list_one_flight);

//= ========================
// Index Routes
//= ========================//

app.use('/', index);

// Set Main index Route
indexRoutes.get('/', function(req, res, next) { res.render('index', { title: 'Express', layout: 'layout.hbs' }) });
}

最佳答案

错误给出了详细信息

在 module.exports (/Users/name/Desktop/personal/app/server/src/routes/router.js:18:7)

app.use('/feeds', feed);

feed 这里是一个对象而不是一个函数

关于javascript - EXPRESS: Router.use() 需要一个中间件函数但是得到了一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49766026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com