首页 > 解决方案 > PHP curl 到 nodejs

问题描述

我有一些运行 curl 命令的 php 代码。但是我工作的公司正在切换到 nodejs,我不确定如何在 node.js 中以相同的方式复制请求。或者,如果我可以使用 axios 在前端复制请求,我什至会很高兴。我真的不在乎我是怎么做的,我只需要以完全相同的方式复制请求。

    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_HTTPHEADER => array(
                'Authorization: Token '.$token
            ),
        CURLOPT_URL => 'https://myWebsite.com/api/led/contents/',
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_POST => 1,
        CURLOPT_POSTFIELDS => array(
            url => '@bannerStockUpload/'.$assetName.'/'.$assetName.'_'.$dimensions[1].'.mp4',
                    thumbnail => '@bannerStockUpload/'.$assetName.'/'.$assetName.'_thumb.jpg',
            type => 'video',
                    width => $dimensions[0],
                    height => $dimensions[1],
                    duration => $dur,
                    name => $assetName."_".$dimensions[0]."x".$dimensions[1]."mp4"
        )
    ));
    // Send the request & save response to $resp
    $resp = curl_exec($curl);

标签: node.jscurlaxios

解决方案


你可以通过 npm 安装 axios 然后:

const axios = require('axios');

const data = {
    url: '@bannerStockUpload/'.$assetName.'/'.$assetName.'_'.$dimensions[1].'.mp4', // chnage $assetName to js variable
    thumbnail: '@bannerStockUpload/'.$assetName.'/'.$assetName.'_thumb.jpg',
    type: 'video',
    width: $dimensions[0], // change dimension to js variable
    height: $dimensions[1], // change dimension to js variable
    duration: $dur,
    name: $assetName."_".$dimensions[0]."x".$dimensions[1]."mp4"
}

const headers = {
  headers: {
    Authorization: 'Token ' + $token // add javascript token
  }
}
// Make a request for a user with a given ID
axios.post('https://myWebsite.com/api/led/contents/', data, headers)
    .then(function (response) {
    // handle success
    console.log(response);
    })
    .catch(function (error) {
    // handle error
    console.log(error);
    })

推荐阅读