我有一个简单的 JavaScript 文件,如下所示:module.exports = function () { return { clearCookies: clearCookies, setCookie: setCookie, getCookie: getCookie };};function getCookie(name) { var i, x, y, ARRcookies = document.cookie.split(';'); for (i = 0; i < ARRcookies.length; i++) { x = ARRcookies[i].substr(0, ARRcookies[i].indexOf('=')); y = ARRcookies[i].substr(ARRcookies[i].indexOf('=') + 1); x = x.replace(/^\s+|\s+$/g, ''); if (x === name) { return unescape(y); } } return '';}function setCookie(name, value, expiresInDays) { var expiryDate = new Date(); expiryDate.setDate(expiryDate.getDate() + expiresInDays); var cookieValue = escape(value) + ((expiresInDays === null) ? '' : '; expires=' + expiryDate.toUTCString()); document.cookie = name + '=' + cookieValue;}function clearCookies() { setCookie('token', '', 0); setCookie('quoteDetails', '', 0); location.href = 'index.html';}然后在我的main.js我试图这样做:var { checkPostCode } = require('epc_common');var { getCookie, setCookie } = require('epc_cookies');$('#quotemebutton').click((e) => { e.preventDefault(); let storedToken = getCookie('token'); /* ---- remove for brevity ---- */});我正在使用Bable来允许我使用 es6,它会生成一个缩小的文件。问题是它无法调用getCookie方法。我得到的错误是:未捕获的类型错误:a 不是函数我会认为当它缩小我的代码时,它会缩小 require 以及调用方法?任何帮助将不胜感激。
1 回答
波斯汪
TA贡献1811条经验 获得超4个赞
与
module.exports = function () {
return {
clearCookies: clearCookies,
setCookie: setCookie,
getCookie: getCookie
};
};
您有一个export,它是一个函数,在调用时返回一个对象。但是在
var { getCookie, setCookie } = require('epc_cookies');
您试图在不调用返回的函数的情况下检索getCookie和setCookie函数require。
只导出普通对象,在导出的文件底部:
module.exports = {
clearCookies: clearCookies,
setCookie: setCookie,
getCookie: getCookie
};
由于看起来您使用的是 ES6,因此您可以使用速记属性名称:
module.exports = {
clearCookies,
setCookie,
getCookie
};
添加回答
举报
0/150
提交
取消