core/Readme.md

146 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

```
____ _ __ _
/ ___(_)_ _____ _ __ ___ ___ / _(_)_ _____
| | _| \ \ / / _ \ | '_ ` _ \ / _ \ | |_| \ \ / / _ \
| |_| | |\ V / __/ | | | | | | __/ | _| |\ V / __/
\____|_| \_/ \___| |_| |_| |_|\___| |_| |_| \_/ \___|
```
一个轻量级的,易学的,拓展性灵活的 nodejs MVC 框架, 5 分钟即可上手。取自"Give me five"之意, 一切就是这么简单
框架要求 nodejs 版本在 12.0 或以上, 并且只支持使用`import/export`
## 启用方法(步骤)
**注**
`本框架和用法 都是在 Linux 或者 Mac 下面测试通过。至于使用 Windows 并坚持玩新技术的同学,我坚信他们一定有着过人的、`
`甚至是不可告人的兼容性 bug 处理能力,所以这部分同学麻烦在安装过程无法继续时,自行兼容一下`
1. 下载安装 Five.js 框架。
* 为了方便下载安装及管理, 推荐使用 five-cli(这是一款专门为框架开发的脚本工具) 进行操作。
```bash
# 全局安装 five-cli
npm i -g @gm5/cli
# 进入项目目录
cd /project/demo
# 初始化一个项目,初始化完成会自动安装所需要的依赖
five-cli init
# 初始化完成之后, 执行以下命令即可启动了,如果需要修改配置,可以先修改好再启动
five-cli start
```
* 也可以自行通过 npm 安装, 自己构建启动配置
```bash
# 进入项目目录
cd /project/demo
npm i @gm5/core
mkdir apps public data views
touch app.js
# 自行编辑app.js, 然后通过node, pm2启动项目即可
#
# import Five from '@gm5/core'
# var app = new Five()
# app.repload('./apps')
# app.listen(8000)
```
2. 配置框架
建立启动文件, 如 app.js
```javascript
'use strict'
import Five from '@gm5/core'
var app = new Five()
app.set({ website: 'www.your_domain.com' })
// 设置域cookie用到不设置则等同于website
// app.set({ domain: 'your_domain.com' })
// [可选], 但是要用到模板渲染页面时, 必须指定
// app.set({ views: { enabled: true, dir: './views/'} })
app.preload('./apps/') // [必须], 预加载应用目录
app.listen(3001) // 默认是3000
```
其他的配置和功能, 请参考 [文档](https://github.com/bytedo/gmf.core/wiki)。
3. 启动应用。在项目根目录打开终端, 输入以下命令 `five-cli start`, 然后根据提示操作, 即可
```bash
# 初始化完成之后, 执行以下命令即可启动了,如果需要修改配置,可以先修改好再启动
five-cli start
不是使用five-cli创建的项目, 可使用node/pm2等启动项目
node app.js
# or
pm2 start app.js
```
4. 添加 nginx 配置(使用其他 web 服务,如 apache 的童鞋,请自行根据所使用的 web 服务器语法改写**强烈推荐 nginx**), 路径啥的自行根据自己的机器修改
```nginx
upstream five_upstream {
server 127.0.0.1:3001;
#server 127.0.0.1:3002;
keepalive 64;
}
server {
listen 80;
server_name abc.com;
index index.html index.htm;
root /www/abc.com/public;
location ~ ^/(images/|js/|css/|upload/|favicon.ico|robots.txt) {
expires 1d;
access_log off;
}
location / {
try_files $uri
@proxy;
}
location @proxy {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_max_temp_file_size 0;
proxy_pass http://five_upstream;
proxy_redirect off;
proxy_read_timeout 240s;
}
}
```
5. 请开始你的表演。
## 版权说明
> 本框架使用 MIT 开源协议, 一切的使用,请遵循 MIT 协议。
一个轻量级的,易学的,拓展性灵活的 nodejs MVC 框架, 5 分钟即可上手。取自"Give me five"之意, 一切就是这么简单
JavaScript 100%