【问题标题】:Express + NodeJS Documentation [closed]Express + NodeJS 文档 [关闭]
【发布时间】:2012-03-07 19:12:51
【问题描述】:

大家好,我是 Express + NodeJS 的新手。我来自 Java,现在正试图赶上 Node,所以如果我问一些基本问题,请保持温和(我在过去 2 天里一直在追赶这些东西)

我的问题是关于文档的。

因此,当我浏览 Express 网站上的一些示例时,我会看到以下内容

app.get('/users/:id?', function(req, res, next){
 ......
});

有时

app.get('/users/:id?', function(req, res){
 ......
});

我可以确定函数中有多少参数的文档在哪里?首先是 req、res 和 next,然后是 req 和 res。

第二个问题:关于请求和响应对象的可用内容以及作为框架一部分可用的其他方法的文档在哪里?

我在这里查看了文档http://expressjs.com/guide.html#req.header() 但我无法想象这是整个文档,因为我注意到在本文档中不存在的示例中使用的方法。

有人能指出 express + nodeJS 开发最常用的文档吗?如果您能在此处列出所有链接,我将不胜感激!

【问题讨论】:

    标签: node.js documentation express


    【解决方案1】:

    第一个问题:你需要慢一分钟。除了 Java,你有其他语言的经验吗? Javascript 没有您从 Java 中知道的方法签名。这是一个简单的例子:

    function foo(bar, baz, qux) {
        var result = bar + baz;
        if(qux) {
            result += qux;
        }
        return result;
    }
    
    foo(1, 2);
    // => 3
    foo(1, 2, 3);
    // => 6
    

    这是一个人为的例子,但它表明你可以声明一个接受 3 个参数的函数,并且只使用其中的两个。事实上,它可以直接使用arguments 并接受比函数声明中指定的参数甚至更多

    function bar(foo) {
        if(arguments.length > 1) {
            var baz = arguments[1];
            return foo + baz;
        }
        return foo;
    }
    
    bar(2);
    // => 2
    bar(2, 4);
    // => 6
    

    无论如何,简而言之,您的路由处理程序function(req, res, next) {} 将始终使用reqresnext 调用——但您可能不需要next(因为你可能永远不会传递控制权),所以你忽略它(它仍然会在 there,在你的 arguments 对象中,只是没有限定为 next)。有些人觉得这很草率,有些人觉得它简洁。

    第二个问题:这里是node.js docshttp.ServerRequesthttp.ServerResponse。您已经了解 Express 指南。

    【讨论】:

    • 感谢 Linus,在我完全深入节点之前,我正在阅读 javascript。感谢您的帮助。
    【解决方案2】:

    JavaScript 对于函数接受的参数数量有点松懈。如果一个函数有两个参数,你仍然可以传递五个参数——你传递的前两个将进入命名参数,其余的只能通过 arguments 对象获得。 (类似地,如果你编写一个接受三个参数的函数,调用者仍然只能传递两个参数,而第三个参数的值为undefined。)

    所以基本上,该函数总是会得到三个参数,但很多时候你并不打算使用 next 延续,所以你可以不使用它,JavaScript 会默默吞下它。

    至于文档,该指南是 Express 的官方文档。 Node.js 的文档是at nodejs.org。 Express 的模块通常基于它们的 vanilla Node 等价物(例如,服务器基于 Node 的 http.Server)。

    【讨论】:

      猜你喜欢
      • 2013-06-27
      • 1970-01-01
      • 2021-09-17
      • 2014-01-24
      • 2017-06-07
      • 1970-01-01
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多