create simple node server

Posted by Learning libs on February 2, 2021
var http = require('http')
http.createServer(function(req,res){
        res.writeHead(200,{'Content-Type': 'text/plain'})
        res.end('Hello Node world')
}).listen(7789)

console.log(':tada:')

koa 简易server


  const koa = require('koa')
  const static = require("koa-static")
  const Router = require('koa-router')

  const app = new koa()

  app.use(static(__dirname))
  const router = new Router()
  router.get("/api", ctx => {
    ctx.body = {
      myName: "zhangsan",
      age: 25
    }
  })

  router.get("/", ctx => {
    ctx.body = "this is homepage123123"
  })

  app.use(router.routes())

  app.listen(8989)


koa 增加log中间件

// index.js
  const koa = require('koa')
  const log = require('./log')
  const app= new koa()
  let m1 = function(ctx,next){
    console.log(1);
    next()
    console.log(2);
  }

  let m2 = function(ctx,next){
    console.log(3);
    next()
    console.log(4);
  }

  app.use(m1)
  app.use(m2)
  app.use(log)

  app.use(ctx => {
    ctx.body="this is body"
  })

  app.listen(8989)

 // log.js
  const fs = require('fs')
  module.exports = async (ctx, next) => {
    const startTime = Date.now()
    const reqTime = startTime
    await next()
    const ms = Date.now() - startTime
    const log = `${ctx.request.ip} -- ${reqTime}--${ctx.method} -- ${ms}ms`

    fs.appendFileSync('./log.txt', log)
  }

koa 解决跨域

服务端添加 ctx.set('Access-Control-Allow-Origin', "*") *会有安全问题,需要指定ip, 会有一些凭证携带不了

添加koa-server-http-proxy中间件代理


  const koa = require('koa')
  const static = require("koa-static")
  const koaServerHttpProxy = require('koa-server-http-proxy')
  const Router = require('koa-router')

  const app = new koa()

 // 代理
  app.use(koaServerHttpProxy('/api', {
    // 转向真正请求的服务器
    target: 'http://localhost:8990',
    pathRewrite: {"^/api":''}
  }))

   // 客户端发送请求请求 http://localhost:8989/api/接口

  app.use(static(__dirname))
  const router = new Router()

  router.get("/", ctx => {
    ctx.body = "this is homepage123123"
  })

  app.use(router.routes())

  app.listen(8989)