如何使用Node / Express调用从客户端调用ajax get请求?

时间:2016-10-11 04:35:40

标签: javascript jquery ajax express

我有一个文件shuffleRoute.js,我定义了这个:

router.get("/shuffle?jokers=false", function (req, res) {
   cards['a','b','c'];
   let shuffledCards =  _.shuffle(cards);

    res.status(200).send(shuffledCards);

});

我有一个我定义的index.js:

app.get("/v1/game", require("./routes/shuffleRoute.js"));

我有一个game.html,其中onload我需要做一个ajax请求来获取洗牌。我该怎么做?

这样做

  $.get( "/v1/game", function(res) {
        console.log(res);
    });

不起作用。

我收到此错误:

jquery-2.2.4.min.js:4 GET localhost:8080/v1/game 500 (Internal Server Error) –

我使用摩根来记录服务器中的错误信息。

然而,评论出来给了我这个错误。

jquery-2.2.4.min.js:4 GET http://localhost:8080/v1/game 404 (Not Found)

1 个答案:

答案 0 :(得分:1)

可能是错的,但我在这里看到了路线问题。

为快速使用app.use

定义路线时

var myRoute = require('PathToYourRouteFile');

app.use("/v1/game", myRoute);

在路线档案中。我假设您使用快速路由器,您需要定义类似这样的东西

youRuoterName.get('/', function(req, res, next) { })

当您转到localhost/v1/game时,此请求将会成功。

如果你想要另一个,那就去做

youRuoterName.get('/shuffle', function(req, res, next) { })

当您转到/v1/game/shuffle时,哪些会成功。

在您的示例中,我只看到一条明显与/v1/game/shuffle不匹配的路由/v1/game,我甚至不确定其余代码是否按预期工作。

所以请仔细阅读docs http://expressjs.com/en/4x/api.html#router.route 一切都应该奏效。

希望这有帮助。