zoukankan      html  css  js  c++  java
  • web框架express学习三

    // var url = require("url");
    // var parsedURL = url.parse("http://www.example.com/profile?name=barry");
    // console.log(parsedURL.protocol);  // "http:"
    // console.log(parsedURL.host);       // "www.example.com"
    // console.log(parsedURL.query);     // "name=barry
    // Returns "Hello, Nicholas Cage!"
    // ====================================
    
    // npm install Mustache --save
    // var Mustache = require('mustache')
    // var aa = Mustache.render("Hello, {{first}} {{last}}!", {
    //   first: "Nicholas",
    //   last: "Cage"
    // });
    // console.log(aa)
    // ====================================
    
    // var fs = require("fs");
    // var options = { encoding: "utf-8" };
    // fs.readFile("text.txt", options, function(err, data) {
    //   if (err) {
    //     console.error("Error reading file!");
    //     return;
    //   }
    //   console.log(data);
    // });
    // ====================================
    
    // var http = require("http");
    // function requestHandler(request, response) {
    // response.writeHead(200, {"Content-Type": "text/plain"})
    //   let type = request.url;
    //   if(type == "/index"){
    //     response.end('wellcome index')
    //   } else if(type == "/home"){
    //     response.end('wellcome home')
    //   }else{
    //     response.end('404')
    //   }
    //   console.log(`request to ${type}`);
    // }
    // var server = http.createServer(requestHandler);
    // server.listen(3800);
    // ====================================
    
    // npm install express --save
    // npm install morgan --save  日志
    // cnpm install file-stream-rotator --save
    var express = require("express");
    var logger = require("morgan");
    var FileStreamRotator = require("file-stream-rotator");
    var fs = require("fs");
    var http = require("http");
    var app = express();
    var logDirectory = __dirname + "/log";
    fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory);
    var accessLogStream = FileStreamRotator.getStream({
      date_format: "YYYYMMDD",
      filename: logDirectory + "/%DATE%.log",
      frequency: "daily",
      verbose: false
    });
    app.use(logger("combined", { stream: accessLogStream }));
    
    // 当前目录创建access.log打印所有请求
    // var accessLogStream = fs.createWriteStream(__dirname + '/access.log', {flags: 'a'});
    // app.use(logger('combined', {stream: accessLogStream}));
    
    // 自定义日志记录中间件
    app.use(function(request, response, next) {
      console.log("In comes a " + request.method + " to " + request.url);
      next();
    });
    //发送实际响应
    app.use((request, response, next) => {
      response.writeHead(200, { "Content-Type": "text/plain" });
      let minutes = new Date().getMinutes();
      // 中间件自上而下执行通过next过渡
      if (minutes % 2 === 0) {
        next();
      } else {
        response.statusCode = 403;
        response.end("Not authorized.");
      }
    });
    app.use(function(request, response) {
      if (request.url == "/") {
        response.end("Hello qinhuansky");
      } else if (request.url == "/home") {
        response.end("wellcome home");
      } else {
        response.end("404");
      }
    });
    http.createServer(app).listen(3800);
    本想把日子过成诗,时而简单,时而精致,不料日子却过成了一首歌,时而不靠谱,时而不着调
  • 相关阅读:
    WP7 操作XML文件
    C#和C/C++指针实现swap交换
    感受
    我学到了什么 我思考了什么.
    hdu 2768 Cat vs. Dog (最大独立)
    hdu 1960 Taxi Cab Scheme (最小覆盖)
    hdu 1528 Card Game Cheater (最小覆盖)
    hdu 4160 Dolls (最大独立)
    hdu 2458 Kindergarten (最大独立集)
    hdu 2119 Matrix (最小覆盖)
  • 原文地址:https://www.cnblogs.com/chuanq/p/12125289.html
Copyright © 2011-2022 走看看