
导入http包,create一个server
[方法?url?解析querystring,返回JSON.stringify,监听端口]
method访问方法,post?get?
const url访问的网址?拿到
req.query拿到的是对象obj,通过解析querystring(查询字符串),parse改成对象
res.end返回字符串,所以要把obj通过,JSON.stringify把req.query变成JSON字符串。[JSON.stringify() 方法将一个 JavaScript 对象或值转换为 JSON 字符串,]
get
//nodejs--get请求
const http = require('http');
const querystring = require('querystring');
const server = http.createServer((req,res)=>{
console.log('method:',req.method)
const url = req.url
console.log('url:',url)
req.query = querystring.parse(url.split('?')[1])
console.log('query:',req.query)
res.end(JSON.stringify(req.query));
})
server.listen(8000)
console.log("ok ,successed")
post
const http = require('http')
const server = http.createServer((req,res)=>{
if(req.method === 'POST'){
//res数据格式
console.log('req content-type:', req.headers['content-type'])
//接受数据。水管流动,chunk二进制转字符串,
let postData = ''
req.on('data', chunk =>{
postData += chunk.toString()
})
req.on('end',()=>{
console.log('postData:',postData)
res.end('hello world nodejs')
})
}
})
server.listen(8000)
console.log('okay,successed')post+get无框架
//nodejs--get请求
const http = require('http');
const querystring = require('querystring');
//nodejs--post请求
const server = http.createServer((req,res)=>{
const method = req.method
const url = req.url
const path = url.split('?')[0]
const query = querystring.parse(url.split('?')[1])
//设置返回格式为JSON,格式有很多还有text格式的,我这里需要json格式数据
res.setHeader('Content-type','application/json')
//返回数据
const resData = {
method,
url,
path,
query
}
//返回
if(method === 'GET'){
res.end(JSON.stringify(resData))
}
if(method === 'POST'){
let postData = ''
req.on('data', chunk=>{
postData += chunk.toString()
})
req.on('end', ()=>{
resData.postData = postData
res.end(JSON.stringify(resData))
})
}
})
server.listen(8000)
console.log('okay,successed')开发接口
promist,then,callback
基本框架
//用于处理postdata,这里=js的callback,用原生自带promise函数.then
const getPostData = (req) => {
const promise = new Promise((resolve, reject)=>{
})
return promise
}session 与 cookie 的区别
session 保存在服务器,客户端不知道其中的信息;
cookie 保存在客户端,服务器能够知道其中的信息。
session 中保存的是对象,cookie 中保存的是字符串。
session 不能区分路径,同一个用户在访问一个网站期间,所有的 session 在任何一个地方都可以访问到。而 cookie 中如果设置了路径参数,那么同一个网站中不同路径下的 cookie 互相是访问不到的
nodejs文件读取>>日志相关
//引入库
const fs =require('fs')
const path = require('path')
//__dirname=当前目录,
const fileName = path.resolve(__dirname,'data.txt')
//读取文件
fs.readFile(fileName,(err,data)=>{
if(err){
console.error(err)
return
}
//data is Binary=>toString(),data是二进制类型,所以需要转换一下
console.log(data.toString())
})
//写入文件
const content = '这一条数据是系统自动写入的新内容\n'
const opt = {
flag: 'a'
}
//1fileName,2写入内容content,3opt写入方法,4回调函数,只管是否报错
fs.writeFile(fileName,content,opt,(err)=>{
if(err){
console.error('文件写入失败原因:',err)
}
}) 