简体   繁体   English

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

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

I have a php file and Node API. 我有一个php文件和Node API。 The php file in server which return the random number by user given max value. 服务器中的php文件,该文件按用户指定的最大值返回随机数。 The user given maximun value is given from Node Js to php. 给定的maximun值用户是从Node Js到php。 Then the php returns the random value, then the values should be save in MongoDB 然后php返回随机值,然后将这些值保存在MongoDB中

php code 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;
?>

Node API 节点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");
      });
})

Why did not you use axios . 为什么不使用axios Try this code hopefully will work as you want 尝试此代码,希望可以根据需要工作

node 节点

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

<?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