08.node入门之-模块化开发

2018-12-10  本文已影响0人  扁扁的汤圆

1.模块的分类


2.模块化开发的流程


3.模块内全局环境

//获取当前脚本所在路径
console.log(__dirname);
//文件路径
console.log(__filename);

test.js:

const module1 = require('./module/module');//会进入到module/module.js执行里面的操作

执行结果:

$ node test
D:\phpStudy\PHPTutorial\WWW\node\module
D:\phpStudy\PHPTutorial\WWW\node\module\module.js

在文件操作中,所有的路径必须是绝对路径(物理路径)
错误示例:

const fs = require('fs');
fs.readFile('../log.txt',(error,content) => {
   if(error) throw error;
    console.log(content);
});

结果:

$ node test
D:\phpStudy\PHPTutorial\WWW\node\module\module.js:8
   if(error) throw error;
             ^

Error: ENOENT: no such file or directory, open 'D:\phpStudy\PHPTutorial\WWW\log.
txt'

正确:

const fs = require('fs');
//fs.readFile(__dirname+'/../log.txt','utf8',(error,content) => {//这种不需要toString()转换了
fs.readFile(__dirname+'/../log.txt',(error,content) => {
   if(error) throw error;
    console.log(content.toString());
});

结果:

$ node test
海王
console.log(module);

打印结果:

$ node test
Module {
  id: '.',
  exports: {},
  parent: null,
  filename: 'D:\\phpStudy\\PHPTutorial\\WWW\\node\\test.js',
  loaded: false,
  children: [],
  paths:
   [ 'D:\\phpStudy\\PHPTutorial\\WWW\\node\\node_modules',
     'D:\\phpStudy\\PHPTutorial\\WWW\\node_modules',
     'D:\\phpStudy\\PHPTutorial\\node_modules',
     'D:\\phpStudy\\node_modules',
     'D:\\node_modules' ] }

如果将打印放在module.js中,在test.js引入它
module.js:

console.log(module);

test.js:

require('./module/module');

结果:

$ node test
Module {
  id: 'D:\\phpStudy\\PHPTutorial\\WWW\\node\\module\\module.js',
  exports: {},
  parent:
   Module {
     id: '.',
     exports: {},
     parent: null,
     filename: 'D:\\phpStudy\\PHPTutorial\\WWW\\node\\test.js',
     loaded: false,
     children: [ [Circular] ],
     paths:
      [ 'D:\\phpStudy\\PHPTutorial\\WWW\\node\\node_modules',
        'D:\\phpStudy\\PHPTutorial\\WWW\\node_modules',
        'D:\\phpStudy\\PHPTutorial\\node_modules',
        'D:\\phpStudy\\node_modules',
        'D:\\node_modules' ] },
  filename: 'D:\\phpStudy\\PHPTutorial\\WWW\\node\\module\\module.js',
  loaded: false,
  children: [],
  paths:
   [ 'D:\\phpStudy\\PHPTutorial\\WWW\\node\\module\\node_modules',
     'D:\\phpStudy\\PHPTutorial\\WWW\\node\\node_modules',
     'D:\\phpStudy\\PHPTutorial\\WWW\\node_modules',
     'D:\\phpStudy\\PHPTutorial\\node_modules',
     'D:\\phpStudy\\node_modules',
     'D:\\node_modules' ] }

可以通过module.parent判断当前这个文件是否被别的文件加载
module.js:

if(module.parent){
    console.log('当前这个文件是被别的文件加载');
}else{
    console.log('入口文件');
}

4.模块的定义

上一篇 下一篇

猜你喜欢

热点阅读