задний план
В этой статье в основном показаны этапы использования 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…
Проходи мимо и ставь лайк~