Node中的模块系统
使用Node变形而应用程序主要就是在使用
Ecmascript语言 和浏览器一样,在Node中没有Bom和Dom核心模块 文件操作的fs http服务操作的http url路径操作模块 o操作系统信息第三方模块 art-templete 必须通过npm来下载才可以使用
什么是模块化
文件作用域,文件模块作用域通信规则 加载require 导出exports
加载require
var自定义变量名
=require(
'模块')
作用: 执行被加载模块中的代码 得到被加载模块中的exports
导出exports
导出多个成员(必须在对象中):
exports
.a
=123;
exports
.b=function(){
console
.log('bbb')
}
exports
.c
={
foo
:"bar"
};
exports
.d
='hello';
导出单个成员(拿到人的就是函数,字符串)
module
.exports
='hello';
以下情况会覆盖:
module
.exports
='hello';
module
.exports=function add(x
,y
){
return x
+y
;
}
导出多个成员
module
.exports
={
foo
='hello',
add
:function(){
return x
+y
;
}
}
真正去使用的时候: 导出单个成员: exports.xxx=xxx; 导出多个成员: module.exports或者module.exports={ };
总结
var http
=require('http');
var fs
=require('fs');
var template
=require('art-template');
var server
=http
.createServer();
var wwwDir
='D:/app/www';
server
.on('request',function(req
,res
){
var url
=req
.url
;
fs
.readFile('./template-apche.html',function(err
,data
){
if(err
){
return res
.end('404 Not Found');
}
fs
.readdir(wwwDir
,function(err
,files
){
if(err
){
return res
.end('Can not find www Dir.')
}
var htmlStr
=template
.render(data
.toString(),{
title
:'D/app/www/的索引',
files
:files
});
res
.end(htmlStr
);
})
})
});
server
.listen(3000,function(){
console
.log('running...')
})
大家的点赞是我持续不断更新的动力