使用函数里面包含javascript使用require()

问题描述:

在Node.js应用程序中,我试图在require()主要js内调用javascript内部的函数。 举例来说,我有一个js文件,它是数据库连接文件,并具有可在主JavaScript文件中使用的功能。 我已经为数据库js文件调用了require()。 现在主js文件中的变量,我想使用数据库js文件中的函数,所以我可以重用数据库js中创建的连接对象。 我已阅读关于module.exports,但我没有找到明确的解决方案。使用函数里面包含javascript使用require()

请建议如何做到这一点。

是的,你可以重用在不同文件中创建的连接对象。

for ex。在main.js文件:

var db=require("./db.js"); 
var pool =db().pool; 
console.log(pool); 
app.get("/",function(req,res){ 
    console.log("get request"); 


       pool.getConnection(function(err, conn) { 
    if(!err) { 
       console.log("connection open home"); 
       var stmt="select pass from login"; 
       conn.query(stmt,function(err,rows){ 
       if(err) 
       { 
        res.render('pages/dberr'); 
       } 
       else{ 
        if(rows.length>0)// data found in database 
         { 


        console.log("row[0].uname"+rows[0].uname); 

         res.render('pages/home',{user:"guest"}); 

        }else{ 
        res.render('pages/login'); 

          } 
       } 

       }); 
       } 
       else{ 
       console.log("error occured"+err); 
       res.render('pages/login'); 
       } 
      conn.release(); 

       console.log("connection released"); 
    }); 



}); 

我在这里导入db.js文件,返回我的属性池,分配给在main.js文件我的本地变量池,现在我可以像往常一样使用。

和db.js文件

var mysql = require('mysql'); 
var db=function(){ 
    return{ 



     pool: mysql.createPool({ 
    host  : process.env.IP, 
    user  : process.env.C9_USER, 
    password : '', 
    port:3306, 
    database: "node" 
}) 



}; 
}; 

module.exports = db; 

这工作得很好。