繁体   English   中英

从一个 GET 请求中导出输入查询并在单独的请求中使用它们

[英]export input query from one GET request and use them on separate requests

我正在尝试在我的RESTful API上使用用户的输入来查询一个GET请求,并使用该数据随机化一个数字并将该信息用于应用程序的 rest。 任何有关存储值并在整个应用程序的不同块上使用它们的最佳解决方案的指导都值得赞赏。 部分代码示例如下:

    app.get("/start", (req, res) => {
        const numberOfFigures = req.query.figures;
        const randomBaseNumber = Math.random();
        const theNumber = (randomBaseNumber * 10 ** numberOfFigures).toFixed(0);
        res.send(`guess the ${numberOfFigures} digit number!`);

    app.get("/guess", (req, res) => {
        let guessedNumber = req.query.guess;
        if (guessedNumber !== theNumber) {
            console.log("Wrong! Guess again");
        }

例如,我正在尝试在 /guess 请求中使用 /Start 请求中的 Number 值!

您需要将 Number 变量保留在两个回调的theNumber之外,例如

    let theNumber = 0
    app.get("/start", (req, res) => {
        const numberOfFigures = req.query.figures;
        const randomBaseNumber = Math.random();
        theNumber = (randomBaseNumber * 10 ** numberOfFigures).toFixed(0);
        res.send(`guess the ${numberOfFigures} digit number!`);

    app.get("/guess", (req, res) => {
        let guessedNumber = req.query.guess;
        if (guessedNumber !== theNumber) {
            console.log("Wrong! Guess again");
        }

我也会将 POST 用于/guess端点

想到以下 3 种存储数据的方式:

  1. 将 theNumber声明为全局变量。
  2. 将变量存储在 json 中,并在需要时将其导入(例如:fs 模块)。
  3. 将其存储在数据库中(例如:MongoDB)。

方法1是最简单的方法。 该变量将可以从所有路由访问,并且如果您的应用重新启动,它将被删除。

let theNumber = 0;
...
app.get("/start", (req, res) => {
    theNumber = ...
    ...

方法 2 和 3 将使变量在创建后保持不变,即使应用程序重新启动也是如此。 但是,对于这个简单的用例,我会说它们是矫枉过正的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM