javascript - 使用 require() 在包含的 javascript 中使用函数

标签 javascript node.js code-reuse

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

请建议如何实现这一目标。

最佳答案

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

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

这很好用。

关于javascript - 使用 require() 在包含的 javascript 中使用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27103677/

相关文章:

javascript - 将每个特定图像与模式中的位置链接起来

javascript - Extjs 3.4 删除记录后重新加载网格

node.js - 浏览器 Fetch() API 未将正文发布到后端 Node 服务器

ios - 具有可重复使用的 iOS tableview 的两级设置菜单

ios - UITableView 中的 self.delegate=self,有什么问题吗?

C 项目结构、代码共享和具有依赖关系的代码编译

javascript - 两个值不会像预期的那样增加行动

javascript - 如何防止谷歌浏览器输入建议?

node.js - 我应该如何在 MongoDB 中存储盐和密码

javascript - Node.js 对象 Promise