Medusa是一个基于NodeJS的无头电子商务平台,作为Shopify的开源和可行替代品进行营销。
在本文的最后,你应该知道Medusa是什么,安装并部署Medusa到Render。本教程需要NodeJS、NPM和Git的基本知识。
美杜莎入门
Medusa商店包含三个组件:无头服务器、管理仪表板和店面。
Medusa无头服务器是保存商店核心功能和数据的组件。管理仪表板和店面通过管理RESTAPI和店面RESTAPI与无头服务器交互。无头服务器由用于数据库的NodeJS和Postgres组成。
管理仪表板是商店运营商可访问的商店UI部分。商店经营者可以使用管理仪表板来创建、查看和编辑产品数据和订单。
店面是商店的UI部分,客户可以看到它并与之交互以查看产品和下订单。Storefront通常使用客户端****Javascript框架构建,例如React(NextJS、Gatsby)和VueJS。
要求
安装NodeJS
Medusa是基于NodeJS构建的,因此需要运行。node-vNodeJS-Medusa目前支持Node版本14和16。您可以通过在终端中运行来检查您拥有的版本。如果您的计算机上还没有安装Node,请阅读这篇关于如何安装NodeJS的文章。
安装美杜莎CLI
使用NPM全局安装MedusaCLI
npminstall
medusajs/medusa-cli--global创建美杜莎服务器项目
使用示例产品数据引导一个新的Medusa服务器项目和种子。在本教程中,我们将为手表创建一个Medusa电子商务商店,我们将其命名为watch-store-medusa-server。
medusanewwatch-store-medusa-server--seed
启动美杜莎服务器
导航到我们的美杜莎服务器项目目录并启动服务器
cdwatch-store-medusa-servermedusadevelop
测试一下
使用不同的终端窗口向API的产品端点发送一个获取请求,curl以确认服务器运行正常。
curllocalhost:/store/products#IfyouhavePythoninstalled,youcanformattheJSONresult.curllocalhost:/store/products
python-mjson.tool
美杜莎服务器配置
在VSCode等代码编辑器中打开medusa项目文件夹,在文件夹的根目录下,有一个medusa-config.js文件,该文件包含Medusa服务器的所有配置,如数据库和插件。正确配置您的美杜莎服务器很重要。
安装PostgreSQL
PostgreSQL是一个开源的关系数据库系统。尽管运行Medusa服务器不需要Postgres,但强烈推荐它,因为它为您提供了一个更像生产的环境。如果您还没有安装Postgres,这些教程将解释如何在Windows、Linux和macOS上安装PostgreSQL
要检查安装是否成功,或者您是否已经安装了Postgres,请运行:
psql-V
创建Postgres数据库
在开始配置PostgreSQL之前,我们必须创建一个数据库。
accessthepostgresconsolepsqlpostgres#createanewuserCREATEUSERmedusa_adminWITHPASSWORDmedusa_admin_password;#createanewdatabaseandthenewlycreateduserastheownerCREATEDATABASEmedusa_dbOWNERmedusa_admin;#grantallprivilegesonmedusa_dbtothemedusa_adminuserGRANTALLPRIVILEGESONDATABASEmedusaTOmedusa_admin;#exitthepostgresconsolequit
将PostgresURL添加到环境变量
使用这个Postgres数据库URL模板:postgres://username:password
host:port/database和默认端口。将以下行添加到美杜莎服务器文件夹根目录下的.env文件中:DATABASE_URL=postgres://medusa_admin:medusa_admin_password
localhost:/medusa_db在中配置Postgresmedusa-config.js
module.exports={projectConfig:{//...otherconfigurationsdatabase_url:process.env.DATABASE_URL,database_type:"postgres",},};
您可以继续删除默认的SQLite数据库文件,它在medusa-config.js
安装Redis
Redis是一个开源的内存数据结构存储。除其他用途外,它还可用于分发和发送消息以及缓存。
虽然MedusaServer不需要Redis才能运行,但如果您想使用订阅者来处理事件,例如下订单并根据它们执行操作,则需要安装Redis。本教程介绍了如何在您的计算机上安装Redis。
要确认安装是否成功,或者如果您已经安装了Redis,请运行:
redis-server-v
启动Redis服务器
通过本教程了解如何启动和停止Redis服务器
#startredisserveronmacbrewservicesstartredis#startredisserveronlinuxsudosystemctlenableredis
将Redis的ServerURL添加到环境变量中
本地主机上的默认RedisURL是redis://localhost:
REDIS_URL=redis://localhost:
在medusa-config.js中配置Redis
module.exports={projectConfig:{//...otherconfigurationsredis_url:process.env.REDIS_URL},};
测试一下
检查是否一切正常。
#seednewpostgresdatabasenpmrunseed#starttheservernpmrunstart
设置文件存储插件
为了在Medusa中管理文件存储(例如上传产品图片),您需要集成一个文件存储插件。Medusa提供了三种处理文件存储的选项:MinIO、AmazonS3和DigitalOceanSpaces。
设置MinIO
推荐使用MinIO进行本地开发。MinIO类似于AmazonS3,只是它是自托管的。您可以按照本教程在您的计算机上安装MinIO。
启动MinIO服务器
当您的Medusa服务器运行时,请始终确保您的MinIO服务器正在运行。
MinIO的默认地址端口为,这与Medusa冲突,后者也使用端口。您应该将MinIO的端口从更改为其他端口,例如。
#launchtheminioserveronportminioserver~/data--address":"
一旦Minio服务器运行,您可以从浏览器访问控制台,并使用MinIO服务器打印到终端的URL和凭据。
创建一个MinIO存储桶
存储桶类似于文件系统中的文件夹或目录,其中每个存储桶可以保存任意数量的对象。
登录MinIO控制台后,您应该会看到与屏幕截图中显示的页面类似的页面。单击“创建存储桶”按钮以创建一个新存储桶来存储您的美杜莎服务器文件。您可以随意命名存储桶,在本教程中,我将存储桶命名为“美杜莎”。
创建存储桶后,您需要将其访问策略设置为Public。
单击侧边栏上的“存储桶”按钮,然后单击“管理”按钮。
单击访问策略按钮并将其设置为公开。
您还需要生成访问密钥。
单击控制台侧栏中的“身份服务帐户”,然后单击“创建服务帐户”按钮。
将生成随机访问密钥和秘密密钥。单击创建按钮后,将显示一个显示密钥的模式。确保在关闭模式之前将其复制到安全的地方,因为它只会显示一次。
安装MedusaMinIO插件
导航到medusa服务器项目目录并安装插件。
npminstallmedusa-file-minio
在VScode等代码编辑器中打开美杜莎服务器,并将以下内容添加到.env文件中:
MINIO_ENDPOINT=ENDPOINT#URLofyourMinIOserverMINIO_BUCKET=BUCKET#MinIOBucketNameMINIO_ACCESS_KEY=ACCESS_KEY#MinIOBucketaccesskeygeneratedearlier.MINIO_SECRET_KEY=SECRET_KEY#MinIOBucketsecretkeygeneratedearlier.
最终值应类似于以下内容:
MINIO_ENDPOINT=