首先,介绍些express,express是基于node.js平台快速,开放,极简的web开发框架,express 便于我们快速的开发node api接口
得保证安装了node.js
下载好以后,新建server.js文件
//引入模块
const express = require('express');
//获取express对象
const url = require('url');
const fs = require('fs');
const path = require('path');
var bodyParser = require('body-parser')
const app = express();
app.use(bodyParser.urlencoded({extended:false}))
//解析post数据,仅限于 x-www-form-urlencode
app.use(bodyParser.json())
// 解析post 数据的json格式
// app.use(cors());
//get方法,第一个参数为url中的path,req请求对象,res响应对象
/* app.get('/', (req, res) => {
res.send('你好')
})
app.get('/login', (req, res) => {
res.send('欢迎登陆')
}) */
// 注册
// 获取参数
// 保存数据
app.get('/home/reg', (req, res) => {
console.log(req.query);//{ us: 'wangyi', ps: '123' }
console.log(req.url);///home/reg?us=wangyi&ps=123
// 解析url,获取,请求search的api
let search=url.parse(req.url).search;
fs.appendFile(path.join(__dirname,'./user.txt'),search,(err)=>{
//下面不加return的会报错,res.send只能发送一次,也可以使用else。不让他重复发送就行了
if(err){return res.send('注册失败')}
res.send('注册成功')
})
/* console.log(search);//?us=wangyi&ps=123
res.send('欢迎注册') */
})
/*
登陆逻辑
获取用户内容
读取文件内容
对比
*/
app.post('/home/login',(req,res)=>{
// console.log('哈哈哈哈')
//let query=url.parse(req.url).query;
// 判断用户内容
fs.readFile(path.join(__dirname,'./user.txt'),'utf8',(err,data)=>{
if(err){return res.send({err:-1,msg:'登陆失败'})}
//split表示以?号切割
let array=data.split('?')
// 判断用户内容是否存在
console.log(array,query)
if(array.indexOf(query)===-1){
res.send({err:-2,msg:'用户名或者密码错误'})
console.log(array.indexOf(query),query)
}else{
res.send({err:0,msg:'登陆成功'})
}
});
})
/*
api 接口返回数据的标准格式
{
err:-1,//状态值 判断接口的状态
msg:"信息",
data:'数据'
}
post方法数据在消息体里 body req.body
get方法 数据在url req.query
*/
// post 数据接口
app.post('/home/test',(req,res)=>{
console.log(req.body)
res.send('ok')
})
app.listen(3000, () => {
console.log("server start in port"+3000);
})
//以上监听一个端口 开启一个服务器 主机是localhost 端口3000 后面跟path