javascript - 在 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。
解决方案
app.use 接受一个函数来应用于请求。您的 products.js 不会导出任何内容,因此当您需要它时,变量 product 不是函数。尝试将 module.exports 设置为处理函数,而不是将其传递给路由器。
推荐阅读
- android - Android.mk 中 target_link_libraries 的等价物是什么
- c - Linux 内核在哪里锁定和解锁信号量?
- javascript - .json 文件中的脚本,允许使用 webpack 在 vanillaJS 中部署 github-pages 应用程序
- django - 这个网址有什么问题?
- jquery - 我可以使用 jquery 在我的网站公共目录上方调用 ajax 函数吗?
- typescript - 反转错误,TypeError: Reflect.hasOwnMetadata is not a function
- java - java迭代器抛出awt-eventqueue异常
- swift - 使用 Swift 在 Firebase 数据库中检索父级的子级
- c# - 错误:在选项卡中尝试单击菜单选项时,无法在“文档”上执行“querySelector”
- python - 如何使用python从json格式的txt文件中提取键值