如何动态启动 json-server
Posted
技术标签:
【中文标题】如何动态启动 json-server【英文标题】:How to start json-server dynamically 【发布时间】:2020-04-01 15:40:40 【问题描述】:我一直在做一个 Node JS 项目,一个特定的 API 将接收到的请求正文存储到数据库中。为了测试,我使用 json-server 从 JSON 文件中读取和写入数据。
目前我正在使用经典方式启动 json-server
json-server --watch ./datastore/cion-config-datastore.json --port 9000
限制是只有在满足特定的一组条件时,API 才应将请求正文写入 json 文件。因此,我不希望 json-server 一直在后台运行,并且只在需要时调用它。
app.post('/someapi',(req,res)=>
var someValue = req.body
if(condition) // check the condition
// then start the json-server to watch the JSON file
)
如果我使用传统方式启动 json-server,那么每次都必须手动启动,即使不需要。
如果有人能提出动态调用 json-server 的解决方案,我们将不胜感激。
【问题讨论】:
【参考方案1】:你应该看看module child_process
const spawn = require('child_process');
const json_server = spawn('json-server',
['--watch', './datastore/cion-config-datastore.json', '--port', '9000']);
考虑将路径更改为绝对路径。
确保不要多次启动 json-server。如果你很幸运,它将拒绝多次启动,因为该端口已被另一个实例占用。
【讨论】:
以上是关于如何动态启动 json-server的主要内容,如果未能解决你的问题,请参考以下文章
Android动态部署五:如何从插件apk中启动Service
Android动态部署五:如何从插件apk中启动Service