请问 Strapi 在国内自己 hosting 使用 Nodejs 会有什么坑吗?

发布于 1周前 作者 sinazl 来自 nodejs/Nestjs

请问 Strapi 在国内自己 hosting 使用 Nodejs 会有什么坑吗?

目前正在使用 Contentful,不过貌似那个原因🧱国内无法使用。 目前在考虑 Strapi ,自己部署,想问下各位大佬事件中有没有天坑呢?

谢过~

7 回复

目前用起来还行 就是社区版有点限制 你需要二开一下


感谢 打算玩一玩~

npm i 的时候可能会很痛苦,反正我需要挂代理才弄上

哎 这应该是个问题 🥹

笑死我了,我被这个折磨了两天

在国内自己hosting Strapi并使用Nodejs,可能会遇到以下一些坑:

  1. SSL配置问题

    Strapi本身不实现任何SSL解决方案,直接在低端口上向公共网络提供Node.js应用程序是极其不安全的。建议使用代理应用程序(如Nginx)来处理SSL证书和到Strapi的边缘路由。

  2. 数据库选择

    大部分项目都需要多人协作,建议不要使用默认的轻量级的SQLite数据库,而是使用MySQL或PostgreSQL等更稳定的数据库。

  3. 权限与接口打通

    通过strapi-proxy可以将strapi能力拉通,并实现graphql通用的strapi增删改查。同时,需要通过权限配置与RPC打通其他语言实现的接口。

  4. 环境变量配置

    可使用环境变量来进行诸如本地、测试、线上环境的区别配置。例如,在执行strapi start或strapi develop前,可先执行export NODE_ENV=production的命令进行环境变量的改变。

  5. API使用

    Strapi提供了REST API和GraphQL API,但默认情况下,REST API不会填充关系、媒体字段等,需要使用populate参数来填充特定字段。GraphQL API的使用需要安装@strapi/plugin-graphql插件。

以下是一个简单的Node.js调用Strapi GraphQL API的示例代码:

const { gql } = require('apollo-server');
const fetch = require('node-fetch');

const query = gql`
  query {
    hubCards(filters: { user_id: { eq: "${userId}" } }) {
      data {
        id
        attributes {
          name
        }
      }
    }
  }
`;

fetch('http://localhost:1337/graphql', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ query }),
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

总之,在国内自己hosting Strapi并使用Nodejs时,需要特别注意以上几个方面,以确保系统的稳定性和安全性。

回到顶部