const jsonServer = require('json-server')
const cors = require('cors')
const path = require('path')
const server = jsonServer.create()
const router = jsonServer.router(path.join(__dirname, 'db.json'))
const middlewares = jsonServer.defaults()
server.use(cors())
server.use(jsonServer.bodyParser)
server.use(middlewares)
server.use(router)
const PORT = 8000
server.listen(PORT, () => {
console.log(`JSON Server is running on http://localhost:${PORT}`)
})
我正在使用cycle .sh进行部署。如何解决这个错误?
我正在尝试部署json服务器。在做post请求时,我得到了这个错误。
作为一个起点,您不应该在生产环境中使用json-server之类的工具,我可以理解您可能将其用于演示目的. 在这种情况下,有一些无服务器解决方案可以防止您的代码以写模式打开文件,因此这就是jsonServer.router(...)
行执行失败的原因。
如果你不关心db.json
文件被更新的请求(因为无论如何,你的部署解决方案似乎不允许它),你可以只是使用代替js对象,可以在内存中修改(但是,当然,json文件仍将保持完整)。所以,不是:
const router = jsonServer.router(path.join(__dirname, 'db.json'))
试试这样写:
const fs = require('fs')
const db = JSON.parse(fs.readFileSync(path.join(__dirname, 'db.json')))
const router = jsonServer.router(db)