Node.js 在nodejs中使用导出的自定义模块中的函数时出现问题

Node.js 在nodejs中使用导出的自定义模块中的函数时出现问题,node.js,express,Node.js,Express,我是nodejs新手,我正在尝试导出我的自定义模块,但它说函数未定义或不是函数 我创建了一个模块,其中包含一个使用Joi库验证请求主体的函数。下面是我所做的 validator.js const Joi = require('joi'); var validateCustomer = function(customer) { const schema = { name: Joi.string().min(3).required() } return J

我是nodejs新手,我正在尝试导出我的自定义模块,但它说函数未定义或不是函数

我创建了一个模块,其中包含一个使用Joi库验证请求主体的函数。下面是我所做的

validator.js

const Joi = require('joi');

var validateCustomer = function(customer) {
    const schema = {
        name: Joi.string().min(3).required()
    }

    return Joi.validate(customer, schema)
}

module.exports.validator = validateCustomer;
const validator = require('../myModules/validator');

router.post('/', async (req, res) => {
    const {error} = validator(req.body);
    if(error) return res.error(404).send(error.details[0].message);
    ...some code 
});
customers.js

const Joi = require('joi');

var validateCustomer = function(customer) {
    const schema = {
        name: Joi.string().min(3).required()
    }

    return Joi.validate(customer, schema)
}

module.exports.validator = validateCustomer;
const validator = require('../myModules/validator');

router.post('/', async (req, res) => {
    const {error} = validator(req.body);
    if(error) return res.error(404).send(error.details[0].message);
    ...some code 
});
请帮我换衣服

module.exports.validator = validateCustomer;
为了


validator.js中

谢谢。。它起作用了。。但是你能解释一下为什么我不能使用module.exports.validator=validateCustomer吗?好吧,让我们想想这是怎么说的
module.exports.validateCustomer
正在查找
module
对象的
exports
属性的
validateCustomer
属性。我不相信这是以任何方式存在的。因此,您正在设置一个不存在的值。我建议阅读
module.exports()
,这里有大量编写良好的指南,都很容易找到。请查看我的最新评论。我尝试设置validator=validateCustomer,这是我的函数。你只是想向更大的JS环境声明“这个模块有一个名为this的函数,你可以使用它!”不需要将它与任何东西关联。此外,
module
在这种情况下代表了
validator.JS
的“想法”,它有一些导出,特别是
validateCustomer
函数。说
validator.exports.validator=foo()