使用函数里面包含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;
这工作得很好。