Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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中导入函数?_Javascript_Node.js_Function - Fatal编程技术网

Javascript 如何在node.js中导入函数?

Javascript 如何在node.js中导入函数?,javascript,node.js,function,Javascript,Node.js,Function,我想在report.js文件中有两个函数,一个是report\u data,它是api控制器,第二个是test我想在report\u data函数中使用test函数。 下面是我的两个函数的代码 var sequelize = require('../config/sequelize'); const Op = sequelize.Sequelize.Op; var errors = require('../config/errors'); var error = errors.errors; c

我想在report.js文件中有两个函数,一个是
report\u data
,它是api控制器,第二个是
test
我想在
report\u data
函数中使用
test
函数。
下面是我的两个函数的代码

var sequelize = require('../config/sequelize');
const Op = sequelize.Sequelize.Op;
var errors = require('../config/errors');
var error = errors.errors;
const helpers = require('../helpers/validations');
const logger = require('../helpers/logger').logger;
const fs = require('fs');

module.exports = {
    report_data: async (req, res) => {
        if (!req.body.id) {
            logger.warn(error.MANDATORY_FIELDS);
            return res.status(500).send(error.MANDATORY_FIELDS)
        }

        sequelize.sequelize.transaction(async (t1) => {
            console.log('socket connected')
        test(io)
           
            let result = error.OK
            logger.info(result);
            return res.status(200).send(result)

        }).catch(function (err) 
            logger.warn(err);
            console.log(err)
            return res.status(500).send(error.SERVER_ERROR)
        })
    },

    test: function (io) {
        console.log(io.sockets)
    }
};

最简单的方法是将
test
声明为命名的全局函数:

function test(io) {
    console.log(io.sockets)
}

module.exports = {
    report_data: async (req, res) => {
        // now you call call `test()` here
    },
    test: test,
}

是否可以使用它而不声明它globalIt不是全局的。它是模块的本地函数。在这个函数中,我正在获取io对象,但无法理解如何从itright中获取值。现在,在report_数据中,我正在尝试这个`测试(io.emit('ConnectorRoom','You's in room no.“+userId))`但它显示,
io未定义
@Arya
报告_数据
没有名为
io
的变量。你期望io是什么?它是一个变量吗?它是您需要导入的模块吗?还是怎样记住这些,然后发布一个新问题来提供这些信息。