在 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/