在两个Javascript文件之间共享常量值

在两个Javascript文件之间共享常量值,javascript,node.js,mocha.js,async.js,Javascript,Node.js,Mocha.js,Async.js,一般来说,我对JS和Node都是新手。我试图使用Puppeter简单地获取标记的文本值并将其保存为常量。然后,我尝试在Mocha测试所在的“基类”(index.js)中使用该值。出于某种原因,我在挣扎。我正在使用异步 我的文件结构为: 这是我的木偶剧本: //customerChoices.js module.exports=异步(第页)=>{ const frame=page.frames().find(frame=>frame.name()=='iframe'); const saveY

一般来说,我对JS和Node都是新手。我试图使用Puppeter简单地获取标记的文本值并将其保存为常量。然后,我尝试在Mocha测试所在的“基类”(index.js)中使用该值。出于某种原因,我在挣扎。我正在使用异步

我的文件结构为:

这是我的木偶剧本:

//customerChoices.js
module.exports=异步(第页)=>{
const frame=page.frames().find(frame=>frame.name()=='iframe');
const saveYourChoicesButton=wait frame.$('body>div>div>div>form>footer>div>button.permissions-block\uu submit');
等待SaveYourChoices按钮。单击({});
wait page.waitForSelector(“.page title”);
const confirmationMessageText=wait frame.$eval('.submission-response\u copy>p',e=>e.textContent);
返回确认消息文本

};
模块。导出不应异步更改,尤其是在函数调用时更改。CommonJS模块计算一次,
confMessage
async(page)=>{…}
函数

函数应仅返回结果:

module.exports = async(page) => {
  ...
  return confirmationMessageText;
};
用起来像:

const cm = await customerChoices(page);

从您的代码中不清楚customerChoices来自何处,因为您希望模块导出为confMessage。感谢您的回复。我试图让问题更清楚,抱歉。我尝试了您的建议,但索引中的常量仍然是“未定义的”。js在您的代码中,cm`未定义。如果函数返回undefined,
await
ed值将是undefined。是的,很抱歉我太匆忙了;)谢谢你的解释,我的理解力在增长。很高兴你能解决这个问题。