跳到主要内容

基础学习

Node.js 教程

安装

1,选择 Windows PowerShell (Admin)

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser // 一开始电脑使用

2,在项目 安装

npm init -y

3,**(选择)**可安装

npm install -g typescript // 电脑 cmd 安装 typescript 全局安装 / 一开始电脑使用
tsc -v // 检查 / 一开始电脑使用
npm install -g ts-node // 电脑 cmd 安装 ts-node 全局安装 / 一开始电脑使用
ts-node -v // 检查 / 一开始电脑使用

在项目安装 typescript

tsc --init
npm i express
npm i @types/express -D

启动

node hello.js
ts-node ./api_server.ts

Typescript 写法

import express from 'express';

const app = express();

app.get('/',(req,res) => {
res.end('1212');
})

app.listen(8080, () => {
console.log('服务已经启动了...')
})

引入 Json 文件

1,在 tsconfig.json 配置

"resolveJsonModule":true,

2,引入

import list from './list.json'

例子代码:

Json

[
{
"name":"Hoo",
"age":24
},
{
"name":"Jee",
"age":14
}
]

data.ts

import list from './list.json'

export class DataStore{
static list = list
}

api_server.ts

import express from 'express';
import { DataStore } from './data' // 引入 Json 数据

const app = express();

app.get('/',(req,res) => {
res.json(DataStore.list);
})

app.listen(8080, () => {
console.log('服务已经启动了...')
})

JavaScript 写法

FS

创建文件

// 导入 fs
const fs = require('fs');

// 异步写入
fs.writeFile('./创建文件.txt','输入的内容', err => {
if(err){
console.log('写入失败');
return;
}

console.log('成功');
});
// 导入 fs
const fs = require('fs');

// 同步写入
fs.writeFileSync('./创建文件.txt','输入的内容');

//路径
'D:/index.html'

追加内容

// 导入 fs
const fs = require('fs');

// 追加内容
fs.appendFile('./创建文件.txt','追加的内容', err => {
if(err) throw err;
console.log('成功');
});
// 导入 fs
const fs = require('fs');

// 同步追加
fs.appendFileSync('./创建文件.txt','输入的内容');

FS 流式写法 创建

// 导入 fs
const fs = require('fs');

// 写入
let ws = fs.createWriteStream('./世界观.txt');
ws.write('世间1\r\n');
ws.write('世间2\r\n');
ws.write('世间3\r\n');
ws.write('世间4\r\n');

// 关闭
ws.end

读取

// 导入 fs
const fs = require('fs');

// 读取 二进制
fs.readFile('./创建文件.txt',(err, data) => {
if(err) throw err;
console.log(data);
})

// 读取 内容
fs.readFile('./创建文件.txt','utf-8',(err, data) => {
if(err) throw err;
console.log(data);
})
// 导入 fs
const fs = require('fs');

// 读取 二进制
let data = fs.readFileSync('./创建文件.txt');
console.log(data.toString());

保存视频

// 导入 fs
const fs = require('fs');

// 读取
let data = fs.readFileSync('./例子.mp4');

// 保存视频
fs.writeFileSync('../File/Save/例子.mp4',data);
// 导入 fs
const fs = require('fs');

// 读取
const rs = fs.createReadStream('./例子.mp4');
// 保存路径
const ws = fs.createWriteStream('./新例子.mp4');

rs.on('data',chunk => {
// 保存
ws.write(chunk);
})

换名字

// 导入 fs
const fs = require('fs');

// 换名字
fs.rename('./创建文件.txt','./新名字.txt', err => {
if(err) throw err;
console.log('成功');
})

移动文件

// 导入 fs
const fs = require('fs');

// 移动 文件
fs.rename('./创建文件.txt','./新文件夹/创建文件.txt', err => {
if(err) throw err;
console.log('成功');
})

删除文件

// 导入 fs
const fs = require('fs');

// 删除
fs.unlink('./创建文件.txt', err => {
if(err) throw err;
console.log('成功');
})
// 导入 fs
const fs = require('fs');

// 删除
fs.rm('./创建文件.txt', err => {
if(err) throw err;
console.log('成功');
})

创建文件夹

// 导入 fs
const fs = require('fs');

// 创建
fs.mkdir('./page', err => {
if(err) throw err;
console.log('成功');
})

读取文件夹

// 导入 fs
const fs = require('fs');

// 读取
fs.readdir('./page', (err, data) => {
if(err) throw err;
console.log(data);
})

删除文件夹

// 导入 fs
const fs = require('fs');

// 删除 不可删除空文件夹
fs.rmdir('./page', err => {
if(err) throw err;
console.log("成功");
})
// 导入 fs
const fs = require('fs');

// 删除 空文件夹 不推荐使用
fs.rmdir('./page', {recursive: true} , err => {
if(err) throw err;
console.log("成功");
})
// 导入 fs
const fs = require('fs');

// 删除 空文件夹 推荐使用
fs.rm('./page', {recursive: true} , err => {
if(err) throw err;
console.log("成功");
})

Http

// 导入 http
const http = require('http');

// 创建服务对象
const server = http.createServer((request, response) => {
response.end('Hello Http');
})

// 启动服务
server.listen(9000,() => {
console.log('服务启动了')
})
// 导入 http
const http = require('http');

// 创建服务对象
const server = http.createServer((request, response) => {
// 显示中文
response.setHeader('content-type','text/html;charset=utf-8');
response.end('你好');
})

// 启动服务
server.listen(9000,() => {
console.log('服务启动了')
})

获取URL数据

// 导入 http
const http = require('http');
// 导入 url
const url = require('url');

// 创建服务对象
const server = http.createServer((request, response) => {
// 连接
let res = url.parse(request.url, true);

// 获取路径
let pathname = res.pathname;
// 获取传递值
let keyword = res.query.keyword;

response.end('url');
})

// 启动服务
server.listen(9000,() => {
console.log('服务启动了...')
})
// 导入 http
const http = require('http');
// 导入 url
const url = require('url');

// 创建服务对象
const server = http.createServer((request, response) => {

// 获取传递值
let keyword = url.searchParams.get('keyword');

response.end('url');
})

// 启动服务
server.listen(9000,() => {
console.log('服务启动了...')
})

判断方法

// 导入 http 和 url 模块
const http = require('http');
const url = require('url');

// 创建服务对象
const server = http.createServer((request, response) => {

// 获取请求方法
let {method} = request;

// 获取 pathname
let {pathname} = url.parse(request.url, true);

// 显示中文
response.setHeader('content-type','text/html;charset=utf-8');

// 判断请求方法和路径
if (method === 'GET' && pathname === '/login') {
response.end('登入界面');
} else if (method === 'GET' && pathname === '/reg') {
response.end('注册界面');
} else {
response.end('页面不存在');
}
});

// 启动服务
server.listen(9000, () => {
console.log('服务启动了...');
});

引入HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>

<h1>mnj</h1>

</body>
</html>
// 导入 http 和 fs 模块
const http = require('http');
const fs = require('fs');

// 创建服务对象
const server = http.createServer((request, response) => {

// 引入 html
let html = fs.readFileSync('./1.html');
response.end(html);

});

// 启动服务
server.listen(9000, () => {
console.log('服务启动了...');
});
// 导入 http 和 fs 模块
const http = require('http');
const fs = require('fs');

// 创建服务对象
const server = http.createServer((request, response) => {

let {pathname} = url.parse(request.url, true);
if(pathname === '/'){
let html = fs.readFileSync('./1.html');
response.end(html);
}else if(pathname === '/index.css'){
let css = fs.readFileSync('./1.css');
response.end(css);
}else if(pathname === '/index.js'){
let js = fs.readFileSync('./1.js');
response.end(js);
}else{
response.statusCode = 404;
response.end('<h1>404 Not Found</h1>')
}

});

// 启动服务
server.listen(9000, () => {
console.log('服务启动了...');
});
// 导入 http 和 fs 模块
const http = require('http');
const fs = require('fs');

// 创建服务对象
const server = http.createServer((request, response) => {

let {pathname} = url.parse(request.url, true);
fs.readFile(filePath, (err, data) => {
if(err) throw err;
response.end(data);
})

});

// 启动服务
server.listen(9000, () => {
console.log('服务启动了...');
});