经过3天nodejs的原生学习,今天转入到express框架学习.express与nodejs的关系类似于jquery和js关系,很大程度上方便了我们的开发!
nodejs的单独一个文件就是一个模块,在模块内的函数,变量只有自己可以使用,很大程度上保证了模块中的常量,变量的污染!但是如何在其他地方使用这个呢,就有了模块导入的概念!
app.js(封装的模块)
代码语言:javascript复制var name="小明";
exports.name=name;//导出模块
demo.js(导入封装的文件,调取模块的文件)
代码语言:javascript复制var app=require("./app.js");//导入同级目录下的模块文件
console.log(app.name);//输出,模块内的name变量;输出结果小明
如果在一个模块中存在多个变量和函数,难道需要require多次吗?当然不需要,下面实例解决模块文件存在多个变量和函数的
app.js(封装的模块)
代码语言:javascript复制var name="小明";
var age="18岁"
function test(){
console.log("2018年")
}
exports.name=name;//导出模块
exports.age=age;
exports.test=test;
demo.js(导入封装的文件,调取模块的文件)
代码语言:javascript复制var app=require("./app.js");//模块文件存在多个,只需要导入顶级路由的一个模块就行,无需多个
console.log(app.name);//输出,模块内的name变量;输出结果小明
console.log(app.age);//输出,模块内的name变量;输出结果18岁
app.test();//2018年
特殊说明:如果模块内导出的函数是构造函数,则导出不能使用exports.导出名=变量名,只能使用module.exports=函数名
构造函数实例:
app.js
代码语言:javascript复制function info(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
//导出构造函数
module.exports=info;
demo.js
代码语言:javascript复制var app=require("./app.js");//导入module文件
var info=new app("十月梦想","18岁","男");//构造函数引用,需要new一个对象
//输出测试
console.log("姓名:" info.name);//输出十月梦想
以上就是express框架模块导入和导出基本内容!