107 lines
2.1 KiB
JavaScript
107 lines
2.1 KiB
JavaScript
const http = require('http');
|
|
const url = require('url');
|
|
const Db = require('tingodb')().Db;
|
|
const assert = require('assert');
|
|
|
|
const hostname = '127.0.0.1';
|
|
const port = 12346;
|
|
|
|
var db = new Db('./db', {});
|
|
|
|
const server = http.createServer((req, res) => {
|
|
|
|
if (req.method === 'GET') {
|
|
var query = url.parse(req.url, true);
|
|
if (!query.query.dataset)
|
|
{
|
|
res.statusCode = 200;
|
|
res.end()
|
|
}
|
|
else
|
|
{
|
|
console.log(query.query.dataset)
|
|
res.statusCode = 200;
|
|
res.setHeader('Content-Type', 'application/json');
|
|
db.collection(query.query.dataset).find({}).toArray(function(err, result) {
|
|
if (err) throw err;
|
|
console.log(result)
|
|
res.end(JSON.stringify(result));
|
|
db.close();
|
|
});
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (req.method == 'POST') {
|
|
var jsonString = '';
|
|
let content = {}
|
|
req.on('data', function (data) {
|
|
jsonString += data;
|
|
});
|
|
|
|
req.on('end', function () {
|
|
try {
|
|
content = JSON.parse(jsonString);
|
|
} catch (e) {
|
|
res.statusCode = 400;
|
|
res.end()
|
|
return
|
|
}
|
|
|
|
if (!content.name)
|
|
{
|
|
res.statusCode = 400;
|
|
res.end("name is not defined")
|
|
}
|
|
|
|
persistData(content.name,content).then(() => {
|
|
res.statusCode = 201;
|
|
res.end('ok')
|
|
}).catch((error) => {
|
|
console.log(error)
|
|
res.statusCode = 500;
|
|
res.end()
|
|
})
|
|
|
|
|
|
|
|
|
|
});
|
|
}
|
|
|
|
|
|
});
|
|
|
|
function persistData(collection, data)
|
|
{
|
|
|
|
// Fetch a collection to insert document into
|
|
var collection = db.collection(collection);
|
|
// Insert a single document
|
|
return new Promise((resolve, reject) => {
|
|
collection.insert(
|
|
data, {w:1}, function(err, result) {
|
|
console.log("yop")
|
|
console.log(result)
|
|
console.log(err)
|
|
if (err)
|
|
{
|
|
reject(err)
|
|
}
|
|
else
|
|
{
|
|
resolve(result)
|
|
}
|
|
}
|
|
);
|
|
})
|
|
|
|
}
|
|
|
|
server.listen(port, hostname, () => {
|
|
console.log(`Server running at http://${hostname}:${port}/`);
|
|
});
|