const low = require('lowdb')
const FileSync = require('lowdb/adapters/FileSync')
const adapter = new FileSync('db.json')
const db = low(adapter)
var http = require('http');
var url = require('url');
var util = require('util');
var querystring = require('querystring');
http.createServer(function(req, res){
var params = url.parse(req.url, true).query;
var pathName=url.parse(req.url, true).pathname
var geoType=params.geoType
var response={
code:'200',
data:null,
message:"成功"
}
if(pathName=='/add'){
var post=''
req.on('data', function(chunk){
if(chunk){
post += chunk;
}
});
req.on('end', function () {
let jsonObj=JSON.parse(post)
if(jsonObj&&jsonObj.data&&jsonObj.id&&jsonObj.geoType){
console.log(jsonObj.data)
db.get(jsonObj.geoType).push(jsonObj.data).write()
response.code=200
response.message='添加成功'
}else{
response.code=300
response.message='请检查格式'
}
})
}else if(pathName=='/query'){
if(geoType==undefined){
response.code==300
response.message='geoType参数必填'
}
let id=params.id
if(id!=undefined){
let value=db.get(geoType).filter({id:params.id*1}).value()
console.log(value)
if(value!=undefined){
response.data=value
}else{
response.message="未查询到数据"
}
}else{
let value=db.get(geoType).value()
response.data=value
}
}else if(pathName=='/update'){
var post=''
req.on('data', function(chunk){
if(chunk){
post += chunk;
}
});
req.on('end', function () {
let jsonObj=JSON.parse(post)
if(jsonObj&&jsonObj.data&&jsonObj.id&&jsonObj.geoType){
console.log('update',jsonObj)
var result=db.get(jsonObj.geoType).find({id:jsonObj.id*1}).assign(jsonObj.data).write()
response.message='更新成功'
}else{
response.code=300
response.message='请检查格式'
}
})
}else if(pathName=='/delete'){
if(geoType==undefined){
response.code==300
response.message='geoType参数必填'
}
let id=params.id
if(id!=undefined){
db.get(geoType).remove({id:id*1}).write()
}else{
response.message="请输入要删除的id"
}
}
res.write(JSON.stringify(response))
res.end();
}).listen(3000);