兄弟会第六天上课笔记–20160912
上课主要内容:
1.nodejs的模块
2.nodejs文件操作
3.nodejs的io键盘交互
4.nodejs的url判断渲染模版
一.模块的声明与调用—文件之间的相互调用
1.require()导入一个模块
2.exports导出模块
3.代码
//a.js—nodejs模块中的exports对象,可以用他创建你的模块
//exports.li给exports添加属性li
exports.li = function(){
console.log(‘my name is 666’);
}
//b.js–也可以这样引用
var mo = require(‘./a.js’);
mo.li();
4.代码
//a.js
function li(){
console.log(‘hello nodejs’);
}
module.exports = li;
//b.js
var mo = require(‘./a.js’);
console.log (new mo());
//e.js
var haha =require(‘./a.js’);
console.log(haha);
5.eg:计算圆的面积
使用exports
//circle.js
exports.area = function(r){
return r * r * Math.PI;
}
//app.js
var circle = require(‘./circle’);
console.log(circle.area(4));
使用module.exports
//area.js
module.exports = function(r){
return r * r * Math.PI;
}
//app.js
var area = require(‘./area’);
console.log(area(4));
二者输出结果是一样的
一句话做个总结:当我们想让模块导出的是一个对象时, exports 和 module.exports 均可使用(但 exports 也不能重新覆盖为一个新的对象),而当我们想导出非对象接口时,就必须也只能覆盖 module.exports 。
二.node文件操作
1.文件操作使用文件系统模块fs(官网:nodejs.org/dist/latest-v4.x/docs/api/fs.html)
2.操作文件有两种方法,同步操作和异步操作
同步读取: fs.readFileSync()
异步读取: fs.readFile(文件地址,文件编码,回调函数(err,data))
eg:
var fs = require(‘fs’);
fs.readFile(‘0912.txt’,function(err,data){
if(err){
console.log(err);
}else{
console.log(data.toString());
}
})
3.异步模式下写入文件的语法格式(如果文件存在,该方法写入的内容将会覆盖旧文件的内容)
fs.writeFile(filename,data[,option],callback(err));
三.io获取键盘交互—www.npmjs.com可以寻找模块
//io.js
var readline = require(‘readline’);
var rl = readline.createInterface(process.stdin,process.stdout);
rl.setPrompt(‘请和键盘摩擦:’);//从键盘输入内容
rl.prompt();//提示默认输出
rl.on(‘line’,(line)=>{
var str = line.trim();//是一个字体流
console.log(‘你摩擦出的火花是: ’ + str);//输出键盘输入的内容
rl.prompt();
}).on(‘close’,() =>{
console.log(‘exit’);
process.exit(0);
});
四.node的url判断渲染模块
var http =require(‘http’);
var fs = require(‘fs’);
var urlapi = require(‘url’);
http.createServer(function(req,res){
//解析请求的url
var url = urlapi.parse(req.url);
console.log(url.pathname);
}).listen(3000);
作业:
1.nodejs实现一个键盘的io交互或者浏览器输入交互
2.nodejs判断url请求渲染2个简单的模版
3.www.w3school.com.cn看前端布局,写3个静态的页面,首页,列表页,详情页(周三之前完成)