Node.js 在nodejs中使用导出的自定义模块中的函数时出现问题
我是nodejs新手,我正在尝试导出我的自定义模块,但它说函数未定义或不是函数 我创建了一个模块,其中包含一个使用Joi库验证请求主体的函数。下面是我所做的 validator.jsNode.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
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()