mirror of
https://github.com/typicode/json-server.git
synced 2025-07-28 12:43:18 +08:00
Fix static files
This commit is contained in:
@ -17,7 +17,9 @@
|
|||||||
"underscore.inflections": "~0.2.1",
|
"underscore.inflections": "~0.2.1",
|
||||||
"moment": "~2.4.0",
|
"moment": "~2.4.0",
|
||||||
"low": "^0.4.2",
|
"low": "^0.4.2",
|
||||||
"restify": "^2.6.3"
|
"restify": "^2.6.3",
|
||||||
|
"yargs": "^1.2.1",
|
||||||
|
"ecstatic": "^0.4.13"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"supertest": "~0.8.1",
|
"supertest": "~0.8.1",
|
||||||
|
64
src/command.js
Normal file
64
src/command.js
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
var yargv = require('yargs')
|
||||||
|
var request = require('request')
|
||||||
|
var low = require('low')
|
||||||
|
var server = require('./server')
|
||||||
|
|
||||||
|
function show() {
|
||||||
|
for (var prop in low.db) {
|
||||||
|
console.log(server.url + '/' + prop)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function start(port) {
|
||||||
|
server.listen(port, function() {
|
||||||
|
console.log('%s listening at %s', server.name, server.url);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function run() {
|
||||||
|
var argv = yargv.usage('Usage: $0 <source>')
|
||||||
|
.demand(1)
|
||||||
|
.default('port', 3000)
|
||||||
|
.argv
|
||||||
|
|
||||||
|
var source = argv._[0]
|
||||||
|
|
||||||
|
if (/\.json$/.test(source)) {
|
||||||
|
var path = process.cwd() + '/' + source
|
||||||
|
low.path = path
|
||||||
|
low.db = require(path);
|
||||||
|
show()
|
||||||
|
start()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (/\.js$/.test(source)) {
|
||||||
|
var path = process.cwd() + '/' + source
|
||||||
|
low.db = require(path).run();
|
||||||
|
show()
|
||||||
|
start(argv.port)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (/^http/.test(source)) {
|
||||||
|
request.get(source)
|
||||||
|
.end(function(err, res) {
|
||||||
|
if (err) {
|
||||||
|
console.error(err)
|
||||||
|
} else {
|
||||||
|
low.db = JSON.parse(res.text)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
show()
|
||||||
|
start()
|
||||||
|
}
|
||||||
|
|
||||||
|
process.stdin.resume()
|
||||||
|
process.stdin.setEncoding('utf8')
|
||||||
|
|
||||||
|
process.stdin.on('data', function (chunk) {
|
||||||
|
if (chunk.trim().toLowerCase() === 's') {
|
||||||
|
low.save('db-' + Date.now() + '.json')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports.run = run
|
@ -1,11 +1,14 @@
|
|||||||
var _ = require('underscore')
|
var _ = require('underscore')
|
||||||
var low = require('low')
|
var low = require('low')
|
||||||
var restify = require('restify')
|
var ecstatic = require('ecstatic')
|
||||||
var utils = require('./utils')
|
var restify = require('restify')
|
||||||
|
var utils = require('./utils')
|
||||||
|
|
||||||
low._.createId = utils.createId
|
low._.createId = utils.createId
|
||||||
|
|
||||||
var server = restify.createServer()
|
var server = restify.createServer({
|
||||||
|
name: 'JSON Server'
|
||||||
|
})
|
||||||
|
|
||||||
server.use(restify.acceptParser(server.acceptable))
|
server.use(restify.acceptParser(server.acceptable))
|
||||||
server.use(restify.queryParser())
|
server.use(restify.queryParser())
|
||||||
@ -16,6 +19,11 @@ server.use(restify.gzipResponse())
|
|||||||
|
|
||||||
routes = {}
|
routes = {}
|
||||||
|
|
||||||
|
server.get(/^\/$|.*(.css)/, restify.serveStatic({
|
||||||
|
'directory': __dirname + '/../public',
|
||||||
|
'default': 'index.html'
|
||||||
|
}))
|
||||||
|
|
||||||
// GET /db
|
// GET /db
|
||||||
routes.db = function(req, res, next) {
|
routes.db = function(req, res, next) {
|
||||||
res.send(low.db)
|
res.send(low.db)
|
||||||
@ -112,11 +120,6 @@ server.put('/:resource/:id', routes.update)
|
|||||||
server.patch('/:resource/:id', routes.update)
|
server.patch('/:resource/:id', routes.update)
|
||||||
server.del('/:resource/:id', routes.destroy)
|
server.del('/:resource/:id', routes.destroy)
|
||||||
|
|
||||||
server.get('/', restify.serveStatic({
|
|
||||||
directory: './public',
|
|
||||||
default: 'index.html'
|
|
||||||
}));
|
|
||||||
|
|
||||||
server.on('after', function (req, res, route, err) {
|
server.on('after', function (req, res, route, err) {
|
||||||
var latency = Date.now() - req.time()
|
var latency = Date.now() - req.time()
|
||||||
console.log('%s %s %s - %sms',
|
console.log('%s %s %s - %sms',
|
||||||
|
Reference in New Issue
Block a user