周大胖子 发表于 2019-1-25 23:07:07

引入模块 与 有效范围

先掰扯下:模块的引入 与 有效范围 ;首先:
在 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]
查看完整版本: 引入模块 与 有效范围