node let http = require("http"); let server = http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': "text/html" }); res.end('<h1>hello node

  • node
let http = require("http");
let server = http.createServer(function (req, res) {
  res.writeHead(200, {
    'Content-Type': "text/html"
  });
  res.end('<h1>hello nodejs</h1>')
})
server.listen(1111);
  • express
let express = require('express');
let app = express();
app.get('/', function (req, res) {
  res.send('<h1>Hello express!</h1>');
});

app.listen(1111, function () {
  console.log('Example app listening on port 1111!');
});
  • koa
const Koa = require("koa");
const app = new Koa();
app.use(async (ctx) => {
  ctx.body = "hello koa"
})
app.listen(1111, function () {
  console.log('Example app listening on port 1111!');
})

文件服务器

let fs = require('fs');
let url = require('url');
let path = require("path");
let http = require("http");
let root = path.resolve(process.argv[2] || ".")
let server = http.createServer((req, res) => {
  let pathname = url.parse(req.url).pathname;
  let filepath = path.join(root, pathname);
  fs.stat(filepath, (err, stats) => {
    if (!err && stats.isFile()) {
      console.log("200" + req.url);
      res.writeHead(200);
      fs.createReadStream(filepath).pipe(res)
    } else {
      console.log(404);
      res.writeHead(404);
      res.end("404 not found")
    }
  })
})
server.listen(1111)

文件复制

let fs = require("fs");
function copyFile(src, dist) {
  fs.writeFileSync(dist, fs.readFileSync(src));
}
copyFile("./a.txt", './aa.txt');
let fs = require("fs");
function copyFile(src, dist) {
  fs.createReadStream(src).pipe(fs.createWriteStream(dist));
}
copyFile("./a.txt", './aaa.txt');

文件夹里文件复制

let fs = require("fs");
function copyDir(src, dist, callback) {
  fs.access(dist, function (err) {
    if (err) {
      fs.mkdirSync(dist)
    }
    _copy(null, src, dist)
  });
  function _copy(err, src, dist) {
    if (err) {
      callback(err)
    } else {
      fs.readdir(src, function (err, paths) {
        if (err) {
          callback(err);
        } else {
          paths.forEach(function (path) {
            let _src = src + "/" + path;
            let _dist = dist + "/" + path;
            fs.stat(_src, function (err, stat) {
              if (err) {
                callback(err)
              } else {
                if (stat.isFile()) {
                  fs.createReadStream(_src).pipe(fs.createWriteStream(_dist));
                } else if (stat.isDirectory()) {
                  copyDir(_src, _dist, callback)
                }
              }
            })
          })
        }
      })
    }
  }
}
copyDir('./test', './test2', function (err) {
  if (err) {
    console.log(err);
  }
})

遍历文件夹下文件

let fs = require("fs");
let join = require("path").join;
function getJsonFiles(jsonPath) {
  let jsonFiles = [];
  function findJsonFile(path) {

    let files = fs.readdirSync(path);
    files.forEach(function (item, index) {
      let fPath = join(path, item);
      let _file = item;
      let stat = fs.statSync(fPath);
      if (stat.isDirectory()) {
        findJsonFile(fPath)
      }
      if (stat.isFile()) {
        jsonFiles.push(fPath)
      }
    })
  }
  findJsonFile(jsonPath)
  console.log(jsonFiles)
}
getJsonFiles("test")

暂无评论