如何动态启动 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的主要内容,如果未能解决你的问题,请参考以下文章

如何区分 Firebase 动态链接的启动和安装?

Camel如何动态添加和启动路由?

Android动态部署五:如何从插件apk中启动Service

Android动态部署五:如何从插件apk中启动Service

你如何动态控制 react apollo-client 查询启动?

如何在.Net Core启动时根据环境动态选择连接字符串?