javascript - POST 请求仅在服务器启动后第二次有效

标签 javascript node.js ejs

每次我重新启动服务器时,第一个 post 请求中的数据都会保存在 var prodctNum 中,但整个 var request = http.get 函数会变成 NAN,直到我再次发布为止。

我需要做什么?

//Global Vars
app.use(function(req, res, next) {
    res.locals.priceES = null
    res.locals.lowPrice = null
    res.locals.priceArray = null
    next()
  })
  //Set Static Path
app.use(express.static(path.join(__dirname, '/public')))
app.get('/', function(req, res) {
  res.render('newpage') //change to index
})
var currencyGBP = ""

function getCurrency() {}
getCurrency()
var priceES = ""
var priceArray
app.post('/', function(req, res) {
  var proudctNum = req.body.product
  console.log("Product num is:.. " + proudctNum);
  priceArray = [{
    "ID": 0,
    "price": Math.round(priceES / currencyEUR),
    "country": "ES"
  }, {
    "ID": 6,
    "price": 10,
    "country": "TEST"
  }]
  var url = "API" + proudctNum + "&store=";
  //server rquest
  var request = http.get(url + "RU", function(res) {
    var body = ""
    res.on("data", function(chunk) {
      body += chunk;
    })
    res.on("end", function() {
      var profile = JSON.parse(body);
      priceRU = profile[0].productPrice.current.value;
      //console.log("Russia Price is:.." + priceRU);
    })

  });
  var lowPrice = priceArray.reduce(function(prev, curr) {
    return prev.price < curr.price ? prev : curr;
  });
  //console.log(priceArray[0].price);
  console.log(lowPrice)

  function FINALRENDER() {
    console.log(priceArray)
    res.render('newpage', priceArray)
  }
  setTimeout(FINALRENDER, 5000)
})

html/ejs代码

<form method="POST" action="/">
    <input type="text" name="product" onfocus="this.value=''" value="TEXT" class="formInput">
    <p class="text-faded mb-5"><BR>TEXTEXT </p>
    <input type="submit" class="btn btn-primary btn-xl js-scroll-trigger" href="/" value="TEXT"></a>

最佳答案

你检查一下你的 NodeJS 和 JavaScript 方法是否都是 POST 吗?当我曾经写过 GET 并在另一边写 POST 时,我多次遇到过这个问题;)

关于javascript - POST 请求仅在服务器启动后第二次有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48288752/

相关文章:

javascript - 为 HTTP 响应在 Node.JS 中迭代对象

javascript - for..in 是否遍历原型(prototype)链中被不可枚举属性覆盖的属性?

javascript - 如何在 javascript 文件中存储包含 á ö ő í 等字母的字符串数组?

javascript - node.js connect-auth 应用程序?示例(用户注册/用户/ session 管理)

javascript - 如何将颜色应用于 nodeJS .ejs 文件中的 <td> 标记

node.js - 如何使用 mongodb、node.js、express 和 EJS 创建动态站点地图?

javascript - 如何让两种不同的输入(一种用于移动设备,一种用于桌面设备)修改同一个变量?

javascript - Mongoose 检测数据库未准备好

javascript - Mongoose : Dynamically load different schema under one collection

带有预编译脚本的 Javascript 模板引擎?