node总结

1、启动

var http = require('http')
let hostname = '127.0.0.1'
let port = 3000
let server=http.createServer((req,res)=>{
  req.on('end', function () {
    console.log('enddd')
  })
  res.end('hhhhh')
})
server.listen(port, hostname, ()=>{
  console.log(`sdsdada`)
})

2、返回index

var http = require('http')
var fs = require('fs');
var hostname = '0.0.0.0'
var port = 3000
var server=http.createServer((req,res)=>{
  req.on('end', function () {
    console.log('enddd')
  })
  // res.end('hhhhh')
  fs.readFile('index.html','utf-8',function(err,data){
	if(err){
	  throw err ;
	}
	res.end(data);
  });
})
server.listen(port, hostname, ()=>{
  console.log(`sdsdada`)
})

3、读文件

var fs= require("fs")
var data= fs.readFileSync('../http/input1.txt')
// fs.readFile('a.js', function (err, data) {
//   if (err) return console.error(err);
//   console.log(data)
//   console.log(data.toString('utf8'));
// })

console.log(data)
console.log(data.toString('utf8'))
console.log('程序执行结束')

4、事件触发

var events = require('events')
var eventEmitter = new events.EventEmitter()
var connect = function connected(){
	console.log('连接成功')
	eventEmitter.emit('data_received')
}

eventEmitter.on('connection', connect)
eventEmitter.on('data_received', function (){
	console.log('数据接收成功')
})
eventEmitter.emit('connection')

console.log('程序执行结束')

5、流式读文件

var fs=require("fs")
var data=""
var readerStream = fs.createReadStream('../http/input1.txt')

readerStream.setEncoding('utf8')

readerStream.on('data', function(chunk){
	console.log(chunk)
	data+=chunk
})
readerStream.on('end', function(){
	console.log(data)
})
readerStream.on('error', function(){
	console.log(data)
})

console.log('程序执行结束')

6、创建文件

var fs=require('fs')
var data='哈哈哈,谭超来了哦'
var writerStream = fs.createWriteStream('output.txt')

writerStream.write(data, 'utf8')

writerStream.end()

writerStream.on('finish', function (){
	console.log('写入完成')
})
writerStream.on('error', function (err){
	console.log(err)
})
console.log('程序执行结束')

7、接收一个可读流src并将其数据输出到可写流dst

var fs=require('fs')
// var data='哈哈哈,谭超来了哦'
var readerStream = fs.createReadStream('../http/input1.txt')
var writerStream = fs.createWriteStream('output.txt')

readerStream.pipe(writerStream);
console.log('程序执行结束')

8、压缩和解压

var fs = require("fs");
var zlib = require('zlib');

// 压缩 input.txt 文件为 input.txt.gz
fs.createReadStream('../http/input1.txt')
  .pipe(zlib.createGzip())
  .pipe(fs.createWriteStream('input.txt.gz'));
  
console.log("文件压缩完成。");

var fs = require("fs");
var zlib = require('zlib');

// 解压 input.txt.gz 文件为 input.txt
fs.createReadStream('input.txt.gz')
  .pipe(zlib.createGunzip())
  .pipe(fs.createWriteStream('input.txt'));
  
console.log("文件解压完成。");

9、process 对象是一个全局变量,它提供有关当前 Node.js 进程的信息并对其进行控制。 作为一个全局变量,它始终可供 Node.js 应用程序使用,无需使用 require()

// 输出到终端
process.stdout.write("Hello World!" + "\n");

// 通过参数读取
process.argv.forEach(function(val, index, array) {
   console.log(index + ': ' + val);
});

// 获取执行路径
console.log(process.execPath);


// 平台信息
console.log(process.platform);

10、异步打开文件

var fs = require("fs");

// 异步打开文件
console.log("准备打开文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log(fd)
  console.log("文件打开成功!");     
});

11、获取文件信息

var fs = require("fs");

console.log("准备打开文件!");
fs.stat('input.txt', function (err, stats) {
   if (err) {
       return console.error(err);
   }
   console.log(stats);
   console.log("读取文件信息成功!");
   
   // 检测文件类型
   console.log("是否为文件(isFile) ? " + stats.isFile());
   console.log("是否为目录(isDirectory) ? " + stats.isDirectory());    
});

12、写入文件

var fs = require("fs");

console.log("准备写入文件");
fs.writeFile('input.txt', '我是通 过fs.writeFile 写入文件的内容',  function(err) {
   if (err) {
       return console.error(err);
   }
   console.log("数据写入成功!");
   console.log("--------我是分割线-------------")
   console.log("读取写入的数据!");
   fs.readFile('input.txt', function (err, data) {
      if (err) {
         return console.error(err);
      }
      console.log("异步读取文件数据: " + data.toString());
   });
});

13、从 fd 指定的文件中读取数据。

var fs = require("fs");
var buf = new Buffer.alloc(1024);

console.log("准备打开已存在的文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   }
   console.log("文件打开成功!");
   console.log("准备读取文件:");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }
      console.log(bytes + "  字节被读取");
      
      // 仅输出读取的字节
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }
   });
});

14、url获取参数

var http = require('http');
var url = require('url');
var util = require('util');

http.createServer(function(req, res){
	res.writeHead(200, {'content-Type': 'text/plain; charset=utf-8'})
	// res.end(util.inspect(url.parse(req.url, true)))

	var params = url.parse(req.url, true).query;
    res.write("网站名:" + params.name);
    res.write("\n");
    res.write("网站 URL:" + params.url);
    res.end();
	
}).listen(3000)
                            url.parse(string).query
                                           |
           url.parse(string).pathname      |
                       |                   |
                       |                   |
                     ------ -------------------
http://localhost:8888/start?foo=bar&hello=world
                                ---       -----
                                 |          |
                                 |          |
              querystring.parse(queryString)["foo"]    |
                                            |
                         querystring.parse(queryString)["hello"]

15、模块提供了一些基本的系统操作函数

var os=require('os')

console.log('platform:'+os.platform())

16、用于处理文件路径

var path=require('path')

console.log(path.normalize())

17、连接 MySQL

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '123456',
  database : 'test'
});
 
connection.connect();
 
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

18、koa

const Koa=require('koa')
const app = new Koa()
// app.use(async ctx=>{
// 	ctx.body=`<html><head></head><body>
// 	<div>dadadsad</div>
// 	<div>222</div>
// 	<div>545</div>
// 	<div>444</div>
// 	<div>5555</div>
// 	</body></html>`
// })


let modal1 = async (ctx, next)=>{
	console.log('a1')
	ctx.body = {}
	ctx.body.aaa=2
	await next()
	console.log('a2')
}
let modal2 = async (ctx, next)=>{
	console.log('b1')
	ctx.body.bbb=3
	await next()
	console.log('b2')
}
app.use(modal1)
app.use(modal2)
// app.use(async ctx=>{
// 	ctx.body=`<html><head></head><body>
// 	<div>dadadsad</div>
// 	<div>222</div>
// 	<div>545</div>
// 	<div>444</div>
// 	<div>5555</div>
// 	</body></html>`
// })
app.listen(8099)
console.log('程序执行结束')

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值