Node.js + Express + структура проекта сборки MySQL

Node.js

задний план

В этой статье в основном показаны этапы использования Express и MySQL для создания структуры проекта, а также показано, как создать проект и выполнить основные операции.

Express

Создать проект

ExpressЭто быстрая, открытая и минималистичная среда веб-разработки, основанная на платформе Node.js.

Установить экспресс-генератор глобально

Express-generator — это инструмент для создания экспресс-приложений, который мы можем использовать для быстрого создания фреймворков приложений.

npm install -g express-generator

Создать проект

express expressFrame(expressFrame — это название проекта)

Структура каталогов проекта

bin/www — это файл записи запуска, в котором вы можете установить номер порта и т. д.

Скачать зависимости

После создания проекта он содержит основные файлы проекта и связанные зависимости.

npm install

Стартовый проект

npm start

Команда запуска также может быть:

nodo ./bin/www

установить нодмон

Nodemon можно установить для отслеживания любых изменений в исходном коде node.js и автоматического перезапуска сервера.

Установите nodemon глобально:

npm install -g nodemon

Стартовый проект

nodemon bin/www

Это успешное начать это

браузер открытhttp://localhost:3000вы можете увидеть страницу

Добавить файл журнала печати

Вот лог винстона

Для конкретного использования см. документацию:Уууу, эта лошадь plus.com/package/win…

установить винстон

npm i winston

Настройка формата журнала печати

Добавьте файл для настройки формата журнала печати в корневой каталог проекта.logger.js(этот файл находится на гитхабе)

Изменить конфигурацию app.js

Изменить имя переменной по умолчанию проекта

Будуconst logger = require('morgan');Измените его на:

const morgan = require('morgan')

соответственноapp.use(logger('dev'));Измените его на:

app.use(morgan('dev'));

Импортируйте файл logger.js

const logger = require('./logger')

Изменить обработку ошибок

печатать ошибки в лог

Проверьте, успешно ли распечатан журнал

Запросите несуществующий маршрут, например:http://localhost:3000/hello

Откройте файл журнала и убедитесь, что эта ошибка распечатана.

MySQL

запустить базу данных

Используемый здесь метод заключается в установке MySQL с помощью Docker.

Вот инструкция по установке:Ууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууу.com/docker/dock…

Установить инструменты управления базами данных

Sequel Proпользовательская установка macOS

navicatУстановка пользователя Windows

Здесь выберите использование Sequel Pro После запуска данных подключитесь к базе данных в Sequel Pro.Пароль - это пароль, установленный вами при запуске базы данных.

создать базу данных

Используйте инструмент управления базой данных, чтобы создать новую базу данных с именем базы данных: expressFrame.

Войдите в библиотеку expressFrame, создайте новую таблицу информации о пользователе как user, с полем id по умолчанию, вам нужно добавить следующие необходимые поля:

Field:id

Поле:имя Тип:VARCHAR LENGTH:255 Комментарий:Имя

Поле:Тип телефона:VARCHAR LENGTH:255 Комментарий:Номер телефона

Используйте Knex для добавления, удаления, изменения и запроса базы данных.

Knex.js— это построитель запросов SQL для Postgres, MSSQL, MySQL, MariaDB, SQLite3, Oracle и Amazon Redshift, разработанный, чтобы быть гибким, переносимым и интересным в использовании. Основной целевой средой для Knex является Node.js, и вам необходимо установить библиотеку knex, а затем соответствующие библиотеки баз данных: pg для PostgreSQL и Amazon Redshift, mysql для MySQL или MariaDB, sqlite3 для SQLite3 или mysql для MSSQL.

Скачать связанные зависимости

npm install -save knex mysql

Добавить информацию о конфигурации

В корневом каталоге проекта создайте новую информацию о конфигурации config.js.Последующая информация о конфигурации включает в себя базу данных и пароль и не загружается на хостинговые платформы, такие как Github, поэтому ее необходимо устанавливать отдельно, а .gitignore используется для избежать загрузки. После этого здесь будет настроена конфиденциальная информация о конфигурации. Адрес хоста — это служебный адрес базы данных, который локально равен 127.0.0.1.

const configs = {
  mysql: {
    host: '127.0.0.1',
    port: '3306',
    user: 'root',
    password: '123456',  // 自己设置的密码
    database: 'expressFrame' // 数据库的名字
  },
  // 打印错误
  log: {
    error (message) {
      console.log('[knex error]', message)
    }
  }
}

module.exports = configs
Новый .gitignore

В корневом каталоге проекта создайте новый .gitignore, чтобы избежать загрузки config.js, log, node_modules и других файлов, которые не нужно загружать на Github.

.DS_Store
.idea
npm-debug.log
yarn-error.log
node_modules
log
# config.js 这个文件我这里就不加进来了,我把它上传到 github
Конфигурация базы данных

Создайте новые модели/knex.js, инициализируйте конфигурацию knex

// 引用配置文件
const configs = require('../config');
// 把配置文件中的信息,设置在初始化配置中
module.exports = require('knex')({
  client: 'mysql',
  connection: {
    host: configs.mysql.host,
    port: configs.mysql.port,
    user: configs.mysql.user,
    password: configs.mysql.password,
    database: configs.mysql.database
  },
  // 打印错误
  log: {
    error (message) {
      console.log('[knex error]', message)
    }
  }
})
кнекс CRUD

Создайте новый файл base.js под моделями

const knex = require('../models/knex');

class Base{
  constructor(props){
    this.table = props;
  }

  // 查找
  all (){
    return knex(this.table).select();
  }

  // 新增
  insert (params){
    return knex(this.table).insert(params);
  }

  // 更改
  update (id, params){
    return knex(this.table).where('id', '=', id).update(params);
  }

  // 删除
  delete (id){
    return knex(this.table).where('id', '=', id).del();
  }

}

module.exports = Base;
Создайте новую модель пользователя

Создайте новый файл user.js под моделями

const Base = require('./base');

class User extends Base {
  // 定义参数默认值为 user 表
  constructor(props = 'user'){
    super(props);
  }
}

module.exports = new User();
Новый пользовательский контроллер

Создайте новую папку контроллера controllers в корневом каталоге, создайте user.js в контроллерах и установите метод showUser

// 引用用户模版数据
const User = require('../models/user.js');

const userController = {
  // showUser 获取用户数据并返回到页面
  showUser: async function(req,res,next){
    try{
      let userData = await User.all()
      res.json({
        code: 200,
        message: "操作成功",
        data: userData
      })
    }catch(e){
      res.json({ code: 0, message: "操作失败", data: e })
    }
  },
}

module.exports = userController;
Добавить получить пользовательский интерфейс

Измените маршрут route/index.js и добавьте интерфейс для получения информации о пользователе.

const userController = require('../controllers/user');

// 获取用户信息
router.get('/get_user', userController.showUser);

тестовый интерфейс

посещениеhttp://localhost:3000/get_user

Просмотр данных, возвращаемых интерфейсом

Это все сделано~

адрес гитхаба:GitHub.com/What to use27/exp Re…

Проходи мимо и ставь лайк~