首页 > 解决方案 > 在 nodejs express 中拆分文件时出现一些错误

问题描述

错误是:

throw new TypeError('Router.use() 需要一个中间件函数但得到一个' + gettype(fn))

文件 (app.js) 如下所示:

const express = require( 'express' )
const app = express()
const product = require( './api/routes/products')


app.use('/products', product )


module.exports = app;

然后它在nodemon中说:

throw new TypeError('Router.use() 需要一个中间件函数但得到一个' + gettype(fn))

这是我的文件 products.js:

const express = require( 'express' )
const router = express.Router()

router.get('/', ( req, res, next ) => {
  res.status( 200 ).json( {
    test: 'got it'
  } )
})

有什么遗漏吗?我使用快递 4.0.16。

标签: javascriptnode.jsjsonexpress

解决方案


app.use 接受一个函数来应用于请求。您的 products.js 不会导出任何内容,因此当您需要它时,变量 product 不是函数。尝试将 module.exports 设置为处理函数,而不是将其传递给路由器。


推荐阅读