首页 > 解决方案 > 从前端调用 Node/Axios

问题描述

我正在开发一个 nodeJS/Axios/Express 应用程序。我已经使用 express 编写了前端,并且有一个我希望能够用来将数据发送到使用 axios 的函数的表单。当我尝试运行它时,我收到一个未定义要求的错误。我如何能够提交表单并将数据传递给我的函数以执行?

我正在使用 EJS,因此某些 HTML 可能看起来像是缺少的部分,因为它是不同文件的一部分。

这是功能之一。如果我使用代码 order_handler.js 执行它,它会正确运行

const axios = require('axios');
const helper = require('../helper_functions');
const qs = require('qs');
const session = require('./get_login');

async function getProdData(slug) {
var sessionid = await session.initSession('<username>', '<password>');

var config = {
    headers: {
        'User-Agent':   'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0',
        cookie: `sessionid=${sessionid.sessionCookie}; _gat=1`,
    },
}

return axios.get('<3rd party API>' + slug + '/?format=json',config)
.then(res => {
    var data = res.data;
    console.log(data);
})
.catch(err => {
    console.error(err); 
})
}

这是前端的 HTML 表单:

<script src="./order_handler.js"></script>
<form action="#" method="POST">
<div class="form-group">
  <label for="sku">Item Lookup by SKU</label>
  <input
    type="text"
    id="text"
    name="Item SKU"
    class="form-control"
    placeholder="Enter SKU"
  />
</div>
<button type="submit" onsubmit="getProductData()" class="btn btn-primary btn-block">Find</button>
</form>

从我在研究中发现的情况来看,问题似乎是因为浏览器不理解我的脚本文件顶部的要求。我只是想不出用前端表单中的数据执行这些函数的最简单方法是什么。

标签: javascriptnode.jsexpressaxiosejs

解决方案


推荐阅读