繁体   English   中英

如何将Node Js中的值传递给php,然后返回?

[英]How can I pass a value from Node Js to php then return back?

我有一个php文件和Node API。 服务器中的php文件,该文件按用户指定的最大值返回随机数。 给定的maximun值用户是从Node Js到php。 然后php返回随机值,然后将这些值保存在MongoDB中

PHP代码

<?php
    $min = 1111;
    $max = '';  // This is given by user from Node API

    $number = mt_rand($min, $max); //Generate a random number using the rand function.

    echo $number;
?>

节点API

router.post("/findMax", upload.single('image'), function (req, res, next)
{
  var enteredMaxNum = req.body.maxNum;
  if(!enteredMaxNum)
  {
    return res.status(400).send("Maximum number should be given");
  }

  const objNumber = new Number(
    {
      max : enteredMaxNum,  // User given, should pass to php variable
      randNum : ????,       // php file return value
    });

    objNumber.save((err) =>
      {
        if (err)
        {
          console.log("New Error : " + err);
          return next(err);
        }
        res.status(201).send("Numbers saved");
      });
})

为什么不使用axios 尝试此代码,希望可以根据需要工作

节点

router.post("/findMax", upload.single('image'), function (req, res, next)
{
  var enteredMaxNum = req.body.maxNum;
  if(!enteredMaxNum)
  {
    return res.status(400).send("Maximum number should be given");
  }

  axios.post('your-php-file-path', require('querystring').stringify({getNodeNum: enteredMaxNum}))
  .then(response => {
    if (response)
    {
      const objNumber = new Number({max: enteredMaxNum, randNum: response.data.random});
      objNumber.save((err) => {
        if (err)
        {
          console.log("New Error : " + err);
          res.status(500).send(err);
        }
        res.status(201).send("Numbers saved");
        });
    }
      })
  .catch(error => res.status(500).send(error));
})

的PHP

<?php

    $min = 1111;

    if(isset($_POST['getNodeNum'])) // It should be $_POST
    {
        $max = $_POST['getNodeNum'];

        $number = mt_rand($min, $max);

        print(json_encode(['random' => $number]));
        exit();
    }
?>

暂无
暂无

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

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