【发布时间】:2022-01-07 22:44:36
【问题描述】:
我创建了一个 Express.js 系统,其中 /routes 文件夹中的文件充当经典路由(但每个路由一个文件)
例如:/routes/get/user.js 可以通过http://localhost:8080/user 访问(/get 是分隔方法,可以是/post、/put...)
这是我的整个index.js 文件:https://pastebin.com/ALtSeHXc
但实际上,我的问题是我无法将参数传递到像 https://localhost:8080/user/random_id_here 这样的 url。
有了这个系统,我认为最好的办法是找到一种方法也可以在分离的文件上传递参数,但我不知道该怎么做......
这是我的一个分离文件的示例:
module.exports = class NameAPI {
constructor(client) {
this.client = client
}
async run(req, res) {
// Code here
}
}
也许你会有一个更好的系统,或者一个解决方案。谢谢。
【问题讨论】:
-
为什么要使用文件系统作为要定义哪些路由的存储库?是否有什么神奇的东西让您在下次重新启动服务器时创建一个新文件神奇地创建一个新路由?为什么不在您的代码中构建一个指定所有内容的表格,您可以从表格中循环遍历表格构建路线。然后,您可以在表定义中添加任何您想要的内容,包括参数。
-
如果您真的只想从文件 sytsem 中执行此操作,您可以将一些关于参数的内容作为属性存储在您的路由处理函数中。因此,您导入将处理路由的函数,然后访问该函数上指定参数之类的属性,以便您知道如何为该特定路由构建 Express 路由定义。请记住,函数是对象并且可以具有属性。
-
注意:您的
_loadHttpMethode(method)函数可以通过将每个 switch 语句的公共部分分解为采用一个参数(方法名称)的单个函数来大量减少其中的代码量。其他一切都只是复制代码。
标签: javascript node.js express web routes