从前端调用Node / Axios

时间:2020-09-18 15:01:44

标签: javascript node.js express axios ejs

我正在处理一个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>

从我的研究发现,似乎问题出在浏览器无法理解脚本文件顶部的需求。我只是想不出让这些功能与前端表单上的数据一起执行的最简单方法。

0 个答案:

没有答案