node的模块
- require:导入一个模块
- exports:导出模块
- module.exports:导出模块
-
代码(一)
a.js:
//以函数的形式进行导出,函数的名称为li
exports.li = function(){
console.log("heheda!");
}b.js: //因为a.js不是核心模块,所以使用require时要使用路径 var mo = require('./a.js'); //直接调用函数,此时的函数相当于mo模块的方法 mo.li();
-
代码(二)
a.js:
function li(){
console.log('hello nodejs');
}
//将函数作为模块导出
module.exports = li;b.js: //导出模块 var mo = require('./a.js'); mo(); *tip:所有的exports收集到的属性和方法,都赋值给了 Module.exports。当然,这有个前提,就是Module.exports本身不具备任何属性和方法。 如果,Module.exports已经具备一些属性和方法,那么exports收集来的信息将被忽略。*
node的文件操作
-
文件操作使用文件系统模块fs
-
操作文件有两种方法,同步操作和异步操作。
同步读取:fs.readFileSync()
异步读取:fs.readFile(文件地址,文件编码,回调函数(err,data))
eg://导入文件系统模块 var fs = require('fs'); //读取文件,第一个参数是文件路径,第二个参数是一个可选参数,是文件的格式,第三个参数是回调函数 //回调函数的参数,第一个参数是错误对象,第二个参数是读取文件的内容 fs.readFile('1.txt',function(err,data){ //判断是否出错 if(err){ console.log(err); } else { //toString():将对象转化为字符串 console.log(data.toString()); } });
异步模式下写入文件的语法格式:
fs.writeFile(filename, data[, options], callback(err))
;
如果文件存在,该方法写入的内容会覆盖旧的文件内容。
node的io键盘交互
tip:Readline是node里实现标准输入输出的封装好的模块。通过这个模块我们可以以逐行的方式读取数据流。eg:
//导入readline模块
var readline = require('readline');
//创建readline接口实例
var rl = readline.createInterface({
//使用全局对象process进行获取输入和输出的对象
input:process.stdin,
output:process.stdout
});
//设置提示符
rl.setPrompt('请输入一些东西');
rl.prompt();
rl.on('line',(line) => {
var str = line.trim();
console.log(123);
rl.prompt();
}).on('close',() => {
console.log('exit');
process.exit();
});
tip:
- 方法setPromat(promat),就是给每一行设置一个提示符
- prompt:就是在等待用户输入数据,以行为单位读取数据.
+ 这里又监听了’line’ 事件,因为promat方法调用一次就只会读取一次数据,所以,在这个方法又调用了一次promat方法,这样就可以继续读取用户输入,从而达到一种命令行的效果。
node的url判断渲染模块
//导入http模块
var http = require("http");
//导入文件系统模块
var fs = require("fs");
//导入url模块
var urlapi = require("url");
//创建http.server实例
http.createServer(function(req,res){
//解析请求的URL
var url = urlapi.parse(req.url);
console.log(url.pathname);
}).listen(3000);
tip:可以通过判断url.pathname的不同渲染不同的页面
作业
nodejs实现IO键盘交互或浏览器输入交互
nodejs判断url请求渲染2个简单的模板
写3个静态的页面,首页,列表页,详情页
网友评论