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('程序执行结束')