# mall-cook
**Repository Path**: li_shifeng/mall-cook
## Basic Information
- **Project Name**: mall-cook
- **Description**: 可视化商城搭建平台——基于已有开源项目改造而来
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2024-01-28
- **Last Updated**: 2026-01-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: mallCook, mall-cook
## README
# mall-cook
- 源仓库 Gitee 地址:https://gitee.com/mirrors/Mall-Cook
- 源仓库 GitHub 地址:https://github.com/wangyuan389/mall-cook
- 在线预览:http://www.sunmao-design.top/
- 视频介绍:https://www.bilibili.com/video/BV1AY4y1q7se/
- Node 版本:16.18.0
- npm 源:https://registry.npmmirror.com/
- 包管理器:pnpm
## 启动运行
- 下载安装 Mongodb:https://www.mongodb.com/try/download/community
- 启动之后,直接点击 connect
- 修改 mall-cook-service/config.js 中的 mongodbUrl
```bash
# 安装依赖并启动
pnpm bootstrap
# 或者
# 安装依赖
pnpm install
# 启动项目
pnpm dev
```
## 项目说明
- 该仓库基于源仓库的以下 commit 修改而来:
> fix: 修复 mac 打包问题 (#94)
> Commit: 9a85dbc3e0af492814c5ced98d9c91200b20ec3e
> Parents: 2a46177f60c988e3e5e64ae82febccd5b824ca6e
> Author: June <1601745371@qq.com>
> Committer: GitHub
> Date: Tue May 23 2023 11:22:30 GMT+0800 (China Standard Time)
- 使用 pnpm 的 workspace 进行改写,实现 Monorepo 项目结构
```js
// mall-cook-template:前端项目
// 修改请求地址:utils/request.js
const baseUrl = 'http://127.0.0.1:3000'
// mall-cook-platform:后台管理端
// 修改请求地址:config/global.js
export default {
baseApi: 'http://127.0.0.1:3000/', // 请求地址
viewUrl: 'http://127.0.0.1:8081/#/' // mall-cook-template 项目启动地址
}
// mall-cook-service:服务端
// 配置文件:config.js
const config = {
appid: 'xxx', // 小程序 appId
secret: 'xxx', // 小程序 secret
serviceApi: 'http://127.0.0.1:3000', // 服务器地址
mongodbUrl: 'mongodb://localhost:27017/mall-cook', // mongodb 数据库地址,格式:mongodb://username:password@host:port/name
jwtSecret: 'secret'
}
module.exports = config
```
## 架构图

## 问题记录
### 服务端安装依赖 puppeteer 报错
- 执行配置:npm config set puppeteer_download_host=https://npm.taobao.org/mirrors
- 然后再安装依赖:npm i
- 参考资料:
- https://www.cnblogs.com/bradleyxin/p/14529618.html
- https://www.cnblogs.com/zhangyaolan/p/12590028.html
### 启动本地服务无法上传图片问题
`npm i dayjs`
```js
// routes/upload.js
// 额外引入这几个模块
const path = require('path')
const fs = require('fs')
const dayjs = require('dayjs')
// 创建文件夹
function mkdirsSync(dirname) {
if(fs.existsSync(dirname)) {
return true
} else {
if(mkdirsSync(path.dirname(dirname))) {
fs.mkdirSync(dirname)
return true
}
}
}
// routes/upload.js
// 19行
destination: function (req, file, cb) {
// appjs中koa-static配置目录为public,因此上传目录放public; 也可以配置koa-static
const filePath = `${path.resolve('./public')}/img/${dayjs(Date.now()).format('YYYYMMDD')}`
// 递归创建多级
if(mkdirsSync(filePath)) {
cb(null, filePath)
}
}
// 35行
data: `${config.serviceApi}/img/${dayjs(Date.now()).format('YYYYMMDD')}/${ctx.req.file.filename}`
```
### 图片上传组件
- https://www.npmjs.com/package/imgpond