自學node.js總結.1

回調函數! 前面加載的模塊都是回調函數。 下面的就是一個 能夠經過localhost訪問到 本身電腦裏面的文件 的服務器 基本模型(我以爲是)css

<!--基本結構 -->
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');
  
})


複製代碼
相關文章
相關標籤/搜索