node.js - express.Router() 是否需要导出才能工作?app.use() 的第二个参数似乎无法硬编码,只有在导入时才有效
问题描述
我正在关注一本编码书,但遇到了 express.Router() 的问题。我是新手,因为我主要使用 React。
我的问题是,在路由时,我使用过:
import express from 'express'
import users from './api/users.route.js'
const app = express()
const router = express.Router()
//use route
app.use("/api/v1/users", router.route('/').get((req, res) => res.end('Test Users')))
export default app
我想先关注一下下面的代码。
app.use("/api/v1/users", router.route('/').get((req, res) => res.end('Test Users')))
所以基本上上面的代码是抛出一个错误
Router.use() requires a middleware function but got a Object
现在有趣的是,如果我只在 app.use() 中编写第二个参数(见下文)
router.route('/').get((req, res) => res.end('Test Users'))
并从已导出为路由器的文件中获取它
import express from 'express'
const router = express.Router()
router.route('/').get((req, res) => res.end('Test Users!'))
export default router
然后像这样导入它并在 app.use() 的第二个参数中使用它(用户是导出默认路由器中的“路由器”)
app.use("/api/v1/users", users)
突然之间,代码起作用了。
重申一下,我基本上要说的是
app.use("/api/v1/users", users)
作品。但...
app.use("/api/v1/users", router.route('/').get((req, res) => res.end('Test Users')))
不工作...
为什么?
解决方案
推荐阅读
- sql-server - 多个词动态替换
- html - img 或 div 如何与 vh 单位小于 100% 的容器配合使用
- javascript - JQuery 不使用相同的命令显示其他函数中的数据
- javascript - 在JS中使用点运算符从字符串数组中访问带有键的JSON对象不起作用
- wpf - 获取在 XAML 中声明实例的程序集
- spring-boot - Gradle spring boot 2 spring-boot-dependencies 无法下载依赖
- javascript - 单击自定义按钮时,有什么方法可以将图像复制到剪贴板?
- websphere - Websphere - 在 Liberty 上开发,在 WAS V8.5.5 上部署
- c++ - C++17 标准 - 抛弃静态的 const
- apache-nifi - 使用 git 作为存储时,无法通过 http 调用删除 Nifi 注册表中的流