Router.use() requires a middleware function but got a Object

文章类型:node

发布者:hp

发布时间:2024-11-14

一:原因

在用node写接口式,启动代码,报错,Router.use() requires a middleware function but got a ' + gettype(fn)错误

   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 (D:\新建文件夹\blogapi\node_modules\express\lib\router\index.js:469:13)
    at Function.<anonymous> (D:\新建文件夹\blogapi\node_modules\express\lib\application.js:227:21)
    at Array.forEach (<anonymous>)
    at Function.use (D:\新建文件夹\blogapi\node_modules\express\lib\application.js:224:7)

二:解决方案

模块未导出导致,一定记得到导出模块,module.exports 导出对外的变量或接口,需要导出接口

module.exports = router;

三:完整代码

router.post("/inquiry/projects", (req, res) => {
    const sql = "select * from type WHERE isShow=1" ;
    db.query(sql ,(error, results, fields) => {
        res.send({
            code: 200,
            message: "",
            data:results
        });
    });
});

module.exports = router;

四:总结

1:module.exports 导出对外的变量或接口,需要导出接口