【问题标题】:Use function inside included javascript using require()使用 require() 在包含的 javascript 中使用函数
【发布时间】:2014-11-24 11:23:27
【问题描述】:

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

请建议如何实现。

【问题讨论】:

    标签: javascript node.js code-reuse


    【解决方案1】:

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

    例如。在你的 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;
    

    这很好用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 2018-09-12
      • 1970-01-01
      • 2017-06-04
      • 2011-12-05
      • 1970-01-01
      • 2011-02-06
      相关资源
      最近更新 更多