引入模块 与 有效范围
先掰扯下:模块的引入 与 有效范围 ;首先:在 app.js 中 引入一个自定义模块, 叫做:laomo.js , 然后 开始自问自答:
// 引入公共文件
const laomo = require('./model/laomo.js');
问:1. 如果我在 index.js [就是index模块] 中 , 使用 laomo.abc()问,这个函数 可以用吗?
答: 当然TND 不可以啦, 啥玩意叫模块,模块?就是说【除了我抛出的 export 】,其余都和外面是绝缘的, 所以,在外面要用, 就在外面引入一遍, 在模块内部要用, 就在模块内部引入一遍, 想偷懒,门都没有! 当然 例如 app 则只能在 app.js 中引入, 不可以放到模块里;
问:2. 我写了一个 巨好用却又贼拉长的函数,好多地方用到它, 我咋搞?
答: 新建/model/laomo.js 然后 引入 , 再然后调用 该模块中的 这个函数
具体例子:
laomo.js 内容
var mysql = require('mysql');
var config = require('../config/config.js')
var pool= mysql.createPool({
host : config.database.HOST,
user : config.database.USERNAME,
password : config.database.PASSWORD,
database : config.database.DATABASE
});
let query = function( sql, values ) {
return new Promise(( resolve, reject ) => {
pool.getConnection(function(err, connection) {
if (err) {
reject( err )
} else {
connection.query(sql, values, ( err, rows) => {
if ( err ) {
reject( err )
} else {
resolve( rows )
}
connection.release()
})
}
})
})
}
// 通过文章id查找
let findArticle = function ( id ) {
let _sql = `select * from cms_newscontent where id="${id}";`
return query( _sql);
}
// 通过业务ID查找
let findBusiness = function(id){
let _sql = `select * from cms_bncontent where id="${id}";`
return query( _sql);
}
// 查询所有的业务分类
let selectBntype = function(){
let _sql = 'select * from cms_bntypereturn query( _sql);
}
// 查询所有的业务
let selectBnCon = function(){
let _sql = 'select id,bn_type,title from cms_bncontentreturn query( _sql);
}
module.exports = {
query,
findArticle,
findBusiness,
selectBntype,
selectBnCon
}
然后, 我在index.js模块中引入:
// 引入公共文件
const laomo = require('../model/laomo.js'); 在index.js 中 使用 ,也可以进行传参
laomo.findBusiness()
页:
[1]