Javascript 如何在nodejs中导出函数
我是nodejs新手,我需要导出nodejs中的函数Javascript 如何在nodejs中导出函数,javascript,node.js,Javascript,Node.js,我是nodejs新手,我需要导出nodejs中的函数 db_function.js文件 app.js文件 它显示错误无法调用未定义的方法“connect”您可以这样导出: enter code here var funName = function() { } module.exports = funName; 让我总结一下评论: 正确导出。那不是你的问题所在 出现此问题的原因是,在db_function.js中,未定义con 即使您在app.js中声明它,javascript也会正确
db_function.js文件
app.js文件
它显示错误无法调用未定义的方法“connect”您可以这样导出:
enter code here
var funName = function() {
}
module.exports = funName;
让我总结一下评论: 正确导出。那不是你的问题所在 出现此问题的原因是,在
db_function.js
中,未定义con
即使您在app.js
中声明它,javascript也会正确地将这两个上下文(app.js
与db_function.js
)隔离开来
我们在这里讨论不同的文件,但是即使在相同的文件中也可以进行上下文保护
var functionOne = function(){
var con = 1;
}
console.log(con) // undefined err, because con is declared inside the function
即使你调用了这个函数
var functionOne = function(){
var con = 1;
}
functionOne();
console.log(con) // undefined err, because con is long gone as soon as function returns
con
仅在函数返回之前有效
如果您想告诉是有效的\u IP
使用什么连接,您只需按如下方式更新代码:
app.get('/test',function(req,res){
var IP = 1;
db.is_valid_IP(IP,con,function(result){
console.log(result);
});
});
db_function.js文件
然后在app.js文件中使用它,如下所示:
app.get('/test',function(req,res){
var IP = 1;
db.is_valid_IP(IP,con,function(result){
console.log(result);
});
});
让我们简化这个问题,正如问题的标题所示,“如何在nodejs中导出函数”。如果只考虑在Node.js中导出函数,我们可以做如下: ./db_function.js(我们导出函数isValidIp): //app.js
'use strict';
var db = require('./db_function');
// require() returns the object that module.exports references
db.isValidIp('127.0.0.1', function(){
console.log('Called back.');
});
使用命令node app.js
运行它,您将得到:
Check if IP is valid.
Called back.
一个警告
./db_function.js(此版本不工作):
您将得到TypeError:
TypeError: db.isValidIp is not a function
这是因为require()return module.exports,而不是导出。导出只是module.exports的简写。如果将导出指向其他对象,则还应更新module.exports。以下版本将起作用:
'use strict';
exports = {
isValidIp: function(ip, callback) {
console.log("Check if IP is valid.");
callback();
}
};
module.exports = exports;
正确导出
con
在db_function.js
i声明的var con=config.conn中未定义;你没有想到,con
可能是未定义的
?@MaheshJagdale我相信Javascript所说的。您能向我们展示一下您的整个db\u功能吗?也许你声明con太迟了,JS已经尝试访问app.JS中声明的itcon,但是你尝试在db_function.JS中访问它。即使你在app.js中调用你的函数,javascript仍然(谢天谢地)以任何其他方式维护代码计算和执行的正确上下文..?是的,给is\u valid\u IP
函数你的连接,更新答案奇怪这个答案如何获得2票,甚至没有回答问题
Check if IP is valid.
Called back.
'use strict';
exports = {
isValidIp: function(ip, callback) {
console.log("Check if IP is valid.");
callback();
}
};
TypeError: db.isValidIp is not a function
'use strict';
exports = {
isValidIp: function(ip, callback) {
console.log("Check if IP is valid.");
callback();
}
};
module.exports = exports;