我正在 Node.js 中创建一个模块,它只公开一个名为 的函数direct
,基本上是一个请求路由器(是的,我正在制作自己的,以努力学习)。但是,我想简化 API 以仅使用一个函数。其他所有内容都被链接起来,具体取决于direct
-ed 的内容。
它现在将接受 3 种类型的输入:字符串(路由)或函数(回调)或两个对象 - 来自的请求和响应对象http.createServer
:
direct('/'); //pass a route string
direct(function(){}); //pass callback
direct(req,res); //pass the request and response
这些的内部是我担心的。目前我正在做:
//if only one,
if(arguments.length === 1) {
if( typeof arguments[0] === 'string') {
//add to routes
} else if( typeof arguments[0] === 'function') {
//add to callbacks
} else {
//return an error
}
} else if(arguments.length === 2 && ...check if both are typeof object, not null, not instance of array...) {
//extremely long check if both are objects
//planning to extract the check as a function
} else {
//return an error object
}
如您所见,我似乎在对大部分内容进行硬编码。此外,检查效率低下且有点长。
- 根据给定标准过滤参数的有效方法是什么?
- 有没有办法检查发送的对象是否是
request
和response
的对象http.createServer
?