如何在 Azure 中托管 json-server

How to host json-server in azure

我是软件领域的新手,请耐心等待我的问题和技术术语错误:

场地:- 我已经使用 Angular4 开发了一个前端应用程序。 angular 应用程序中定义的基础URL 是“http://localhost:3000/”。我的应用程序使用 restangular api 与 json-server 交互(我创建了一个名为 json-server 的文件夹,它有 db.json 和 public 文件夹 )。当我使用命令启动 json-server 时,它工作得很好: json-server json-server --watch db.json

我的应用程序已完成,因此我创建了一个生产版本。此后,我将所有文件从 dist 文件夹移动到 json-server 的 public 文件夹。当我启动 json-server 时,我的应用程序运行良好。

实际问题:- 现在我想在 azure 中托管。我只是从 json-server 文件夹中原样复制了所有 file/folder(db.json 和 public 文件夹)并将它们放在 azure cloud 中。当 azure 托管完成后,我在浏览器中打开 url 我收到一个错误 - "you don't have permission to view".

为了纠正上述错误,我从 azure 中删除了所有文件,然后复制了 dist 文件夹中的所有文件并将它们放在 azure 云中。使用这个我可以在浏览器中看到应用程序但没有图像。在图像中有一个错误 - 状态响应:0 for URL: null

当我在本地启动 json-server 时,一切正常,但当然,当从其他机器打开同一网页时,我得到了同样的错误-状态响应:0 for URL: null

有什么方法可以让 运行 json-server 在 azure 中,以便所有 machines/mobile 在访问 url 时都能看到正确的网页而不会出现任何错误。

在 Azure Web 应用程序上逐步 运行 json-server

  1. 打开浏览器并转到应用服务编辑器 (https://<your-app-name>.scm.azurewebsites.net/dev/wwwroot/)

  2. 运行 控制台中的命令 (Ctrl+Shift+C)

    npm install json-server --save-dev
    
  3. 将所有 file/folder(db.json 和 public 文件夹)放入 wwwroot 文件夹

  4. 创建一个server.js,内容如下

    const jsonServer = require('json-server')
    const server = jsonServer.create()
    const router = jsonServer.router('db.json')
    const middlewares = jsonServer.defaults()
    
    server.use(middlewares)
    server.use(router)
    server.listen(process.env.PORT, () => {
      console.log('JSON Server is running')
    })
    
  5. 单击运行 (Ctrl+F5),这将自动生成web.config文件并在浏览器中打开您的网站。

您可以使用以下方法快速设置模拟服务,该服务可以为静态 JSON 文件提供 REST API。

json-server

只需安装 NodeJS 模块($npm install -g json-server)。以附加格式填充静态 json 文件,然后 运行 JSON 服务器 ($ json-server --watch db.json --port 3000)