Javascript express4-REST客户端通过异步处理程序获得404的路由

Javascript express4-REST客户端通过异步处理程序获得404的路由,javascript,node.js,asynchronous,express,Javascript,Node.js,Asynchronous,Express,编辑2-已修复 我刚刚在我的项目文件夹中重新安装了express,它正常工作了。几秒钟后,它停止了工作 我正在使用Webstorm,并且有一个用于ES6文件的babel文件监视程序。当安装一个节点模块时,该文件监视程序会起作用,并且似乎会以某种方式弄乱模块代码 我为文件监视程序设置了一个特定的范围。我使用*.es6作为es6代码文件。现在一切都好了 原始问题 所以我有一个最简单的表达: var express = require('express'); var app = express();

编辑2-已修复

我刚刚在我的项目文件夹中重新安装了express,它正常工作了。几秒钟后,它停止了工作

我正在使用Webstorm,并且有一个用于ES6文件的babel文件监视程序。当安装一个节点模块时,该文件监视程序会起作用,并且似乎会以某种方式弄乱模块代码

我为文件监视程序设置了一个特定的范围。我使用*.es6作为es6代码文件。现在一切都好了

原始问题

所以我有一个最简单的表达:

var express = require('express');
var app = express();
var router = express.Router();

router.route("/test").get(function (req, res) {
    console.log(res.headersSent);
    setTimeout(() => {
        console.log(res.headersSent);
        try {
            res.send("done waiting");
        } catch(e) {
            console.log(e.stack);
        }
    }, 1000);
});

app.use("/", router);

var server = app.listen(3000, function () {
    var host = server.address().address;
    var port = server.address().port;

    console.log('App listening at http://%s:%s', host, port);
});
我运行服务器并向localhost:3000/test发出GET请求

我马上得到404。控制台说

App listening at http://:::3000 false true Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:350:11) 应用程序在http://:3000上侦听 假的 真的 错误:发送邮件后无法设置邮件头。 在ServerResponse.OutgoingMessage.setHeader(_http_outgoing.js:350:11) 因此,
false
表示在调用我的处理程序之前没有发送头

true
在1000毫秒后出现。它表示在调用异步函数之前发送了头

我希望我的REST客户机(在这种情况下是邮递员)将其请求保持1000毫秒,得到响应并显示“done waiting”

我的理解是,由于我的处理程序没有立即做出响应,所以在某个地方发送了该路由的404

我肯定我错过了一些非常愚蠢的事情,但我在互联网上来回搜索了半天,阅读了教程,却找不到解决办法

我以前偶尔使用express(v2和v3),并在请求处理程序中执行异步操作。我从来没有遇到过这个问题

那么,我错过了什么

nodejs是4.2.1 快车是4.13.3

编辑1

我在Windows7上,64位,节点也是64位的


我在另一台计算机(OSX)上测试了它,它工作得很好。我不懂。我搜索了全球安装的其他版本的express,但似乎什么都没有。我尝试了其他端口,但没有成功。

您确定这是正确的版本吗?我复制和粘贴你的代码,所有的作品,没有任何问题。我使用的版本与你上面描述的相同。是的,我确定。刚刚又查了一遍。我使用的是Win 7 64位,nodejs也是64位,Node 4.1.2在Windows 10/OS X 10.11下运行正常。您确定是正确的版本吗?我复制和粘贴你的代码,所有的作品,没有任何问题。我使用的版本与你上面描述的相同。是的,我确定。刚刚又查了一遍。我使用的是Win7 64位,nodejs也是64位,Node4.1.2,在Windows 10/OS X 10.11下,所有操作都正常。