node.js(三)之模块系统

tech2023-09-19  98

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.') } //使用模块引擎解析替换data中的模块字符串 //去xmpTempleteList.html中编写模块语法 var htmlStr=template.render(data.toString(),{ //.render():用于渲染内容 //.send():用于测试,只可以用一次,和end一样 title:'D/app/www/的索引', files:files }); //发送响应数据 res.end(htmlStr); }) }) }); //绑定端口号,启动服务 server.listen(3000,function(){ console.log('running...') })

大家的点赞是我持续不断更新的动力

最新回复(0)