1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wuyanwen-thinkjsplus

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

1. Установка ThinkJS командой

npm install -g think-cli

Для проверки версии think-cli можно использовать команду thinkjs -v, однако это не покажет версию thinkjs.

2. Создание проекта thinkjsPlus

thinkjs new thinkjsPlus

При создании проекта можно указать параметр --mode=module для создания много модульного проекта (thinkjs new thinkjsPlus --mode=module). В данном проекте этот параметр не был использован.

3. Структура проекта

|--- development.js   // Входной файл для режима разработки
|--- nginx.conf       // Конфигурационный файл Nginx
|--- package.json     
|--- pm2.json         // Конфигурационный файл PM2
|--- production.js    // Входной файл для режима продакшн
|--- README.md        
|--- src              
| |--- bootstrap      // Директория для автоматического запуска скриптов  
| | |--- master.js    // Автоматический запуск для процесса Master
| | |--- worker.js    // Автоматический запуск для процесса Worker
| |--- config         // Директория конфигураций
| | |--- adapter.js   // Конфигурация адаптера
| | |--- config.js    // Основная конфигурация
| | |--- config.production.js // Конфигурация для режима продакшн, объединяется с config.js
| | |--- extend.js    // Расширенная конфигурация
| | |--- middleware.js// Конфигурация middleware
| | |--- router.js    // Конфигурация маршрута
| |--- controller     // Директория контроллеров
| | |--- base.js      
| | |--- index.js     
| |--- logic          // Директория логики
| | |--- index.js     
| |--- model          // Директория моделей
| | |--- index.js     
|--- view             // Директория шаблонов
| |--- index_index.html
|--- www              
| |--- static         // Директория статических ресурсов
| | |--- css          
| | |--- img          
| | |--- js           
```#### 4. Запуск сервиса проекта
> Входной файл для режима разработки — development.js. Для запуска используется команда `node development.js`. Из входного файла видно, что при запуске создаётся экземпляр класса Application из библиотеки ThinkJS, который затем выполняет метод run.

#### 5. Настройка базы данных
> В этом проекте используется MySQL. Конфигурационный файл находится в директории src/config/adapter.js

exports.model = { type: 'mysql', common: { logConnect: isDev, logSql: isDev, logger: msg => think.logger.info(msg) }, mysql: { handle: mysql, database: 'thinkjsplus', prefix: '', encoding: 'utf8', host: '127.0.0.1', port: '3306', user: 'root', password: 'root', dateStrings: true } };

#### 5.1 Создание модели

thinkjs model +ИмяМодели


#### 6. Контроллер
> Команда для создания контроллера выглядит как `thinkjs controller [название_контроллера]`. Мы создаем контроллер для входа в админку, а также создаем html страницу `admin_index.html` для отображения формы входа. После запуска сервиса можно будет получить доступ к форме входа по адресу http://localhost:8360/admin.

thinkjs controller admin

```javascript
const user = this.model('thinkjsplus_user'); // создание экземпляра модели в контроллере
const data = await user.select();
this.assign('title', data);
return this.display();

7. Вид

По умолчанию шаблонный движок в thinkjs3 — это nunjucks. Если в действии контроллера записать так:

this.assign('title', "тестовая страница thinkjsplus!");
return this.display();

в html-странице вида можно получить title таким образом:

{{title}}
```#### 8. Управление правами доступа
> Код управления правами выглядит следующим образом:

module.exports = class extends think.Controller { async __before() { if (this.ctx.controller === 'admin' && (this.ctx.action === 'index' || this.ctx.action === 'login')) { // если это admin_index, то проверка пропускается, и происходит переадресация на вход. return; } let userinfo = await this.session('userinfo'); if (!think.isEmpty(userinfo)) { this.assign('userinfo', userinfo); } else { return this.redirect('/admin/index'); } } }


#### 9. В данном проекте используется база данных MySQL, операции CRUD подробно описаны в проекте

/**

  • Сохранение категории */ async saveAction() { let data = this.post(); if (think.isEmpty(data.id)) { // Сохранение let res = await this.model("thinkjsplus_category").add(data); if (res) { this.json({"success": true}); } else { this.json({"success": false}); } } else { // Обновление let res = await this.model("thinkjsplus_category").update(data); if (res) { this.json({"success": true}); } else { this.json({"success": false}); } } }

/**

  • Удаление категории */ async delAction() { let categoryModel = this.model("thinkjsplus_category"); let posts = this.post("id"); let delNums = categoryModel.where({id: ["IN", posts]}).delete(); if (delNums) { this.json({"success": true}); } else { this.json({"success": false}); } }

/**

  • Получение списка категорий */ async listAction() { const user = this.model('thinkjsplus_category'); // создание экземпляра модели в контроллере const data = await user.select(); return this.json(data); }

#### 10. Запуск данного проекта
> Сначала установите MySQL, затем импортируйте SQL-файлы проекта, после чего выполните команду `npm install` в корневой директории проекта, а затем запустите проект с помощью `npm start`.

#### Прикрепленные скриншоты проекта
 ! [image](./images/1.jpg)
 ! [image](./images/2.jpg)
 ! [image](./images/3.jpg)
 ! [image](./images/4.jpg)
 ! [image](./images/5.jpg)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/wuyanwen-thinkjsplus.git
git@api.gitlife.ru:oschina-mirror/wuyanwen-thinkjsplus.git
oschina-mirror
wuyanwen-thinkjsplus
wuyanwen-thinkjsplus
master