nodeJs
1. nodeJs官网:http://nodejs.cn/api/
day01
1. 切换盘符 e:
2. 改变目录 cd目录名
3. 执行程序 node xxx.js
day02
request 请求 -输入请求的信息
response 响应 -输出的东西
`const http = require('http')
const server = http.createServer(function (req, res) {
// console.log('有人来了')
console.log(req.url)
switch (req.url) {
case '/1.html':
res.write('111')
break;
case '/2.html':
res.write('222')
break;
default:
res.write('404')
}
res.end();
})`
// 监听-等着
// 端口-数字
server.listen(8082)`
day03
1. 文件操作
`const fs = require('fs')
// readFile('文件名',回调函数)
/*fs.readFile('aaa.txt', function (err, data) {
if(err){
console.log('读取失败')
}else{
console.log(data.toString())
}
})*/
// writeFile(文件名,内容,回调)
fs.writeFile('bbb.txt', 'asdfghjkl', err => {
console.log(err)
})`
2. 服务器读取文件返回给前台
`const http = require('http')
const fs = require('fs')
let server = http.createServer((req, res) => {
// req.url => '/index.html'
// 读取 => './www.index.html'
let file_name = `./www${req.url}`
fs.readFile(file_name, (err, data) => {
if(err){
res.write('404')
}else {
res.write(data)
}
res.end()
})
})
server.listen(8082)`
day04
GET数据解析
1. 自己切
2. querystring xxx=xx&xxx=xxx
3. url aaa?xxx=xx&xx=12
`example:
url.parse(url,true); pathname
query`
`
const http = require('http')
const server = http.createServer((req, res) => {
let GET = {}
// console.log(req.url)
// /aaa?user=blue&pwd=123456
if (req.url.indexOf('?') !== -1) {
let arr = req.url.split('?');
// arr[0] 地址:/aaa
var url = arr[0];
// arr[1] 数据:user=blue&pwd=123456
let arr2 = arr[1].split('&');
// arr2[0] user=blue
// arr2[1] pwd=123456
for (let i = 0; i < arr2.length; i++) {
let arr3 = arr2[i].split('=')
// arr3[0] 名字 'user'
// arr3[1] 数据 'blue'
GET[arr3[0]] = arr3[1]
}
} else {
var url = req.url
}
console.log(url, GET)
res.write('aaa')
res.end()
})
server.listen(8082)
`
1. querystring:查询字符串
`
const querystring = require('querystring')
var json = querystring.parse("user=blue&pass=123456&age=18")
console.log(json) // { user: 'blue', pass: '123456', age: '18' }
`
POST数据解析
1.
`
const http = require('http')
const fs = require('fs')
const querystring = require('querystring')
const urlLib = require('url')
var server = http.createServer((req, res) => {
// GET
var obj = urlLib.parse(req.url, true)
var url = obj.pathname;
const GET = obj.query;
// POST
var str = '';
req.on('data', data => {
str += data
})
req.on('end', () => {
var POST = querystring.parse(str)
/*
url -- 要什么
GET -- get数据
POST -- POST数据
*/
console.log(url, GET, POST)
})
// 文件请求
var file_name = './www/' + url;
fs.readFile(file_name, (err, data) => {
if (err) {
res.write('404')
} else {
res.write(data)
}
res.end();
});
})
server.listen(8082)
`
day06 练习
1. server_route.js
`
const http = require('http')
const fs = require('fs')
const urlLib = require('url')
const querystring = require('querystring')
var users = {
"blue": "123456",
"zhangsan": "123456",
"lisi": "123456"
};
var server = http.createServer((req, res) => {
// 解析数据
var str = '';
req.on('data', data => {
str += data
})
req.on('end', (err, data) => {
const obj = urlLib.parse(req.url, true)
const url = obj.pathname
const GET = obj.query
const POST = querystring.parse(str)
// 区分 —— 接口、文件
if (url === '/user') { // 接口
switch (GET.act) {
case 'reg':
// 1.检查用户名是否已经有了
if (users[GET.user]) {
res.write('{"ok":false,"msg":"此用户已存在"}')
} else {
// 2.插入users
users[GET.user] = GET.pass
res.write('{"ok":true,"msg":"恭喜您,注册成功"}')
}
break
case 'login':
// 1.检查用户名是否已经有了
// 2.检查用户密码
if (!users[GET.user]) {
res.write('{"ok":false,"msg":"此用户不存在"}')
} else if (users[GET.user] !== GET.pass) {
res.write('{"ok":false,"msg":"用户名或密码有误"}')
}else {
res.write('{"ok":true,"msg":"恭喜您,登陆成功"}')
}
break
default:
res.write('{"ok":false,"msg":"未知的act"}')
}
res.end();
} else { // 文件
// 读取文件
const file_name = `./www${url}`
fs.readFile(file_name, (err, data) => {
if (err) {
res.write('404')
} else {
res.write(data)
}
res.end()
})
}
;
})
})
server.listen(8082)`
2. user.html
`
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
用户名:<input type="text" id="user"/><br>
密码:<input type="password" id="pass"/><br>
<button type="button" id="reg_btn">注册</button>
<button type="button" id="login_btn">登陆</button>
<script src="ajax.js"></script>
<script>
// http://localhost:8082/user.html 通过这个地址访问
window.onload = function () {
var oTxtUser = document.getElementById('user')
var oTxtPass = document.getElementById('pass')
var oBtnReg = document.getElementById('reg_btn')
var oBtnLogin = document.getElementById('login_btn')
oBtnReg.onclick = function () {
ajax({
url: '/user',
data: {act: 'reg', user: oTxtUser.value, pass: oTxtPass.value},
type: 'get',
success: function (str) {
var json = eval('(' + str + ')')
console.log(json)
if (json.ok) {
alert('注册成功')
} else {
alert('注册失败' + json.msg)
}
},
error: function (err) {
alert("通信错误")
}
})
}
oBtnLogin.onclick = function () {
ajax({
url: '/user',
data: {act: