Javascript 如何在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也会正确

我是nodejs新手,我需要导出nodejs中的函数
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;