Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在node.js文件中编写函数,然后在常规js文件中调用该函数_Javascript_Node.js - Fatal编程技术网

Javascript 如何在node.js文件中编写函数,然后在常规js文件中调用该函数

Javascript 如何在node.js文件中编写函数,然后在常规js文件中调用该函数,javascript,node.js,Javascript,Node.js,我已经初始化了文件夹中的节点,创建了文件,并编写了函数。在文件系统层次结构更高的另一个文件夹中,我编写了一个脚本标记,源代码是node.js文件。我调用了该函数,但一旦在浏览器中测试它,就会出现以下错误: resetPassword is not defined 以下是我的node.js文件代码: import { createRequire } from 'module'; const require = createRequire(import.meta.url); var admin =

我已经初始化了文件夹中的节点,创建了文件,并编写了函数。在文件系统层次结构更高的另一个文件夹中,我编写了一个脚本标记,源代码是node.js文件。我调用了该函数,但一旦在浏览器中测试它,就会出现以下错误:

resetPassword is not defined
以下是我的node.js文件代码:

import { createRequire } from 'module';
const require = createRequire(import.meta.url);
var admin = require("firebase-admin");
var serviceAccount = require("./troop-30-elections-web-app-firebase-adminsdk-obsmr-61cc4bb59e.json");
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://troop-30-elections-web-app.firebaseio.com"
});

const resetPassword =(docId,newPass) => {
  return admin.auth().updateUser(docId, { 
    password: newPass
   })
  .then(() => {



return {"text": "User Password Successfully Updated"};  // this is what gets sent back to the app

  });
}
以下是我的常规js代码:

resetForm.addEventListener('submit', (e) => {
        console.log("Step 1");
        e.preventDefault();
        let newPass = resetForm['reset-password'].value;
        resetPassword({docId: docId, newPass: newPass}).then(() => {
            const modal = document.querySelector('#modal-reset');
          M.Modal.getInstance(modal).close();
          resetForm.reset();
        });
        console.log("Step 1.5");
    });

我认为node使用ES5语法。我相信您还没有将函数从一个文件导入到另一个文件。 首先,您可能需要从函数的主文件中导出函数,这样您就可以将其导入到您想要的任何文件中

我认为此链接将帮助您:

在节点中编写的代码与在浏览器中编写的代码并不总是相互兼容。像模块、require、fetch、navigator和dns这样的东西只能在其中一种情况下工作。您的代码可以与两者兼容,但您应该在问题中发布它,以便我们可以查看。全局定义myFunction,如window.myFunction=function{}或globals.myFunction=function{}取决于环境,并确保在被调用方js之前加载node.js脚本。如果您的意思是希望通过浏览器的调用在节点中执行某些操作,您可能正在寻找可以通过HTTP请求与之交互的web服务器。谢谢。我认为这是正确的方向,但还不是确切的解决方案。调用函数的文件不是用node.js编写的,只是标准的前端javascript,所以我不能使用Require。