1. fs(File System)不是全局模块,所以要用require引入
// 文件写入操作
var fs = require('fs');
console.log("000");
var msg = 'Hello World! ';
fs.writeFile('boot.txt',msg,'utf-8',function(err){
if(err){
console.log("写文件出错了!"+err);
}
else{
console.log("ok");
}
});
console.log("111");
// 执行结果 000 111 ok
// 文件读取操作
var fs = require("fs");
// data参数的数据类型是一个buffer对象(字节数组),把buffer对象转换为字符串
var msg = fs.readFile("boot.txt",'utf-8',function (err,data) {
if(err){
throw err;
}
else{
console.log(data.toString());
}
});
// 执行结果 这是book.txt中的内容
2.path解决路径拼接问题,不是全局模块,所以要用require引入
__dirname:当前正在执行的js文件所在的目录
__filename:当前正在执行的js文件完整目录
举个例子:D:\Nodejs\prictice\01-node.js
__dirname表示:D:\Nodejs\prictice
__filename表示:D:\Nodejs\prictice\01-node.js
path.join(__dirname,'对应文件名');
3.http不是全局模块,所以要用require引入
下面这个例子就体现了,nodejs的事件驱动和利用回调函数实现异步执行。当我们在地址栏输入localhose:8080,按下回车键时,server监听到用户的请求,在回调函数中执行对应的代码。注意一定要写res.end()表示服务器响应完毕。
//1.加载http模块
var http = require('http');
//2.创建一个http服务对象
var server = http.createServer();
//3.监听用户的请求事件
server.on('request',function (req,res) {
//解决乱码的思路:服务器通过响应报文头,告诉浏览器使用相应的编码来解析网页
res.setHeader("Content-Type","text/html; charset=utf-8");
res.write("hello <h1>world</h1>. 你好世界!zx");
//对于每一个请求,服务器必须结束响应,否则客户端(浏览器)会一直等待服务器响应结束
res.end();
});
//4.启动服务
server.listen(8080,function(){
console.log('服务区启动了,请访问:http://locahost:8080');
});