自学node.js总结.1

199 阅读2分钟

回调函数! 前面加载的模块都是回调函数。 下面的就是一个 可以通过localhost访问到 自己电脑里面的文件 的服务器 基本模型(我觉得是)

<!--基本结构 -->
var http = require('http');
<!--req用户请求 res服务器响应-->
http.createServer(function(res,req){}).listen('端口号',function(){成功启动服务器后想要执行的操作 一般是写  console.log('http://localhost:9797');
打印一下 服务器的地址})
那个端口号有范围的
kenqiuer+c  就是停止服务器
访问流程自己理解的就是  用户输入地址 =>一个什么东西接收到 然后找到对应的服务器 =>  服务器根据地址 找静态文件 需要数据就去数据库里面找 需要其他的都是根据地址来找(好像叫做路由)
path 模块 拼接路径用的
fs 模块 对文件进行操作 建立文件夹啊 读取文件啊 之类的
mime 是获取静态的文件 比如说 html的 css js 图片 它可以根据服务器的请求地址 来找你文件夹里面的文件 such as
/css/index.css   他就直接去找了  

现在都要用if语句来判断用户请求的路径来是服务器响应相应的东西 但是我感觉以后应该还有更简便的方法  拭目以待咯
这个就是给res的对象添加了一个属性 这个属性就是可以通过用户访问的 地址来访问 你自己建立的文件夹下面的文件
render 自己起的名字   这是一个闭包函数(我也不知道啥是闭包)但是这样不用给function传res参数。
  res.render = function (filename) {
    fs.readFile(filename, function (err, data) {
      if (err) {
        res.setHeader(404, 'Not Found', {
          'Content-Type': 'text/html;charset=utf-8 '
        });
        res.end('404,not found')
  
      } 
        res.setHeader('Content-Type', mime.getType(filename));
        res.end(data)
  
      
    });
  }

var http = require('http');
var fs = require('fs');
var path = require('path');
var mime=require('mime')
http.createServer(function (req, res) {
  req.url = req.url.toLowerCase();
  req.method = req.method.toLowerCase();


  res.render = function (filename) {
    fs.readFile(filename, function (err, data) {
      if (err) {
        res.setHeader(404, 'Not Found', {
          'Content-Type': 'text/html;charset=utf-8 '
        });
        res.end('404,not found')
  
      } 
        res.setHeader('Content-Type', mime.getType(filename));
        res.end(data)
  
      
    });
  }


  
  if (req.url === '/n') {
    res.render(path.join(__dirname,'index.html'))
  }
  else if (req.url === '/index' || req.url === '/' && req.method === 'get') {
    res.render(path.join(__dirname, 'yxlmm', 'index.html'))
  }
   
  
  else if (req.url === '/n' || req.url === '/' && req.method === 'get') {
    res.render(path.join(__dirname,'index.html'))
    
  }
  else if (req.url.startsWith === '/add'  && req.method === 'get') {
    console.log(req.url);
    res.end(00)
    
  }
  else if ((req.url.startsWith('/video') || req.url.startsWith('/css') || req.url.startsWith('/image') || req.url.startsWith('/js') || req.url.startsWith('/jquary')) && req.method === 'get') {
    res.render(path.join(__dirname,'yxlmm', req.url))
    }
  

  else {
    res.writeHead(404, 'NOT Found', { 'Cont-TYpe': 'text/html;charset=utf-8' });
    res.end('404,Page Not Found.')
  }
}).listen(9797, function () {
  console.log('http://localhost:9797');
  
})