node.js读取基础。

基础
①node.js是一个开发平台,配置很多api,可以直接调用。
②node.js可以开发控制台程序,桌面应用程序,web应用程序。
③可使用nvm控制多个node.js的版本,可使用nvm uese xxx版本号切换。
④进程模块是变量模块,fs模块require('')非序列模块。

文件操作 ①文件编写:

var fs = require('fs'); //加载
var msg ='hello world'; //实现
fs.writeFile('.txt',msg,'utf8',function(err){ 
});//调用

②异步和同步:同步是一对,异步是同时;计时器等先放进web连续api,再进数值,再执行。
③读取文件:

var fs = require('fs');
fs.readFile('.txt'[,'utf8'],function(err,data){//传递utf8可直接转数据
data.toString('utf8');//加载fs.readFile

④解决相对路径出错的问题:__dirname:正在执行的JS文件所在的目录。__filename:正在执行的JS文件完整的路径。

⑤路径模块的使用:

 var fs = require('fs'); //加载
 var path = require('path');
 var filename = path.join(__ dirname,'.txt'); 

⑥node.js参数都是错误优先。
⑦创建一个简单http服务器程序:

var http = require('http'); //加载http模块
var server = http.createServer(); //创建一个http服务对象
// requset包含用户请求的数据;响应到向用户响应数据,服务器向客户端响应数据时必须使用response 
server.on('request',function(request,res){
/ /监听用户的请求事件//服务器通过设置http响应报文头,告诉游览器使用响应的编码来解析网页
res.setHeader('Content-Type','text/plain;charset= utf-8');// text / html可以读取标签
res.write('hello world');
//响应开始后必须结束
res.end();})
server.listen(8080,function(){//启动服务})

⑧简写http服务程序:

var http = require('http'); //加载http模块
http.createServer(function(req,res){ 
//获取用户请求路径req.url 
res.end();
}).listen(8080,function(){ 
})

⑨读取html页并响应:

var http = require('http'); //加载http模块
var fs = require('fs'); //读取文件模块
var path = require('path'); //路径路径模块
http.createServer(function(req,res){
if(req.url == '/'|| req.url == '/index'){
fs.readFile(path.join(__ dirname,'htmls','index.html'),function(err,data){
     if(err){
     throw err; 
   }
   res.end(data); 
   })
 }else if(req.url =='/images/index.png'){
 fs.readFile(path.join(__ dirname,'images','index.png')function(err,data) {
   if(err){
   throw err;
  }
    res.end(data);
  })
  }else if(req.url =='/css/index.css'){
  fs.readFile(path.join(__ dirname,'css','index.css'),function(err,data){
  if(err){throw err; } 
  res.setHeader('Content-Type','text/css');
  res.end(data);
  })}else{}}).listen(8080,function(){})

⑩模拟apach服务:

var http = require('http'); //加载http模块
var fs = require('fs'); //读取文件模块
var path = require('path');//拼接路径模块
var mime = require('mime');
http.createServer(function(req,res){
  //获取pulic目录的完整路径
  var publicDir = path.join(__dirname,'public');
  //根据public路径和用户请求的路径req.url 计算出用户请求静态资源的完整路径
  var filename = path.join(publicDir,req.url);
  //根据完整路径读取文件
  fs.readFile(filename,function(err,data){
    if(err){
       res.end('文件不存在 404');
    }else{
       //通过第三方模块mime,判断不同资源对应的Content-Type类型。npm install mime 
       res.setHeader('Content-Type',mime.getType(filename));
       res.end(data);
    }   
  });
}).listen(8080,function(){})

☆ url就是一个标识。

request/response对象
①服务器解析用户提交的http请求报文,结果解析到request对象
②response是在服务器端用来向用户做出响应的对象。
③request的常用api:(http.IncomingMessage)request
④response的常用api:(ServerResponse)response
☆ 设置http状态码:
res.statusCode设置http响应状态码;
res.statusMessage设置http响应状态码对应的消息;
res.writeHead(404,‘Not Found’,{Content-Type:‘text/plain;charset=utf-8’})

 res.statusCode  = 404;
 res.statusMessage = 'Not Found';

npm
①npm是世界上最大的js管理器,最大的软件注册处。
②发现可重用代码,集成代码包到项目中。
③让js开发者共享和重用代码变得更容易,更容易。更新正在被共享的代码
④module模块和封装包的区别:
在node.js的里可以通过需要加载的就是模块模块,不能加载的就是包包 包的英文一个文件或目录,必须有的package.json描述。
⑤package.json是包/项目描述文件;
描述自身的数据是元数据。
⑥package-lock.json提供地址下载,迁移时方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值