Front-end программисты разрабатывают свои собственные небольшие программы.По сравнению с изучением разработки небольших программ, большая сложность заключается в создании основы для небольших программ.
С точки зрения новичка, эта статья кратко представляет wafer2, небольшое программное решение, запущенное Tencent Cloud, чтобы программисты, не имеющие опыта разработки в фоновом режиме, также могли создавать свои собственные небольшие программные фоны.
Введение
wafer
Фоновая конструкция включает в себя покупку сервера, покупку базы данных, а затем установку работающей среды на сервере. Честно говоря, я даже не знаю, что установить на сервер. Поэтому я надеюсь, что может быть что-то, что может помочь мне делать все это хорошо.Было бы лучше, если бы были предоставлены некоторые общие интерфейсы, такие как вход в систему. Вот что делает вафля.
На самом деле там, где в фоновом режиме апплета настраивается доменное имя, есть ссылка для перехода в Tencent Cloud:
После входа следуйте инструкциям по покупке, вы можете настроить фон.
wafer2
По сравнению со сборкой кулисы своими руками, вафля намного удобнее, но мне все равно сложно ею пользоваться. Я не знаком с Linux и не могу понять, как тестировать код. Пока не обнаружилось, что Tencent Cloud запустила wafer2.
Если вы используете новый мини-инструмент для разработки программ, вы найдете кнопку «Tencent Cloud» в правом верхнем углу инструмента:
Эта кнопка используется для подключения wafer2.
Мы можем напрямую написать фоновый код в инструменте разработки апплета и загрузить код Фон отличает среду разработки от производственной среды.
Давайте посмотрим, как использовать wafer2.
строить
среда разработки
Собрать вафлю2 очень просто, все следуютофициальная документацияДа ладно, проблем быть не должно, поэтому я не буду вдаваться в подробности.
Производственная среда
Официальная документация относится к среде разработки.Если вы хотите развернуться в производственной среде, необходимо изменить некоторые конфигурации.
доменное имя
Доменное имя среды разработки — xxx.qcloud.la, выделенное Tencent Cloud, в то время как производственная среда должна использовать собственное доменное имя в Tencent Cloud.
Для доменных имен, зарегистрированных через Tencent Cloud Management Center, сертификат HTTPS будет развернут автоматически. Но если вы хотите записать, вам нужно прописать ip сервера, а ip сервера вафли2 нам не предоставляют. В настоящее время я могу купить еще только один сервер для записи...
После привязки доменного имени вы можете подтвердить доменное имя производственной среды в средстве разработки «Подробности» — «Tencent Cloud Status»:
После перехода в рабочую среду не забудьте также изменить доменное имя клиентского интерфейса.
база данных
В Tencent Cloud Management Center измените пароль для входа в производственную среду MySql. Затем войдите в phpMyAdmin, вы можете увидеть IP-адрес сервера MySql на домашней странице и записать его.
Вернитесь к инструменту разработки, найдите server/config.js и измените IP-адрес и пароль для входа в конфигурацию MySql внутри:
mysql: {
host: '修改为生产环境 ip',
port: 3306,
user: 'root',
db: 'cAuth',
pass: '修改为生产环境密码',
char: 'utf8mb4'
},
Загрузите формальный код в инструмент разработки, а затем перейдите в производственную среду центра управления, нажмите «Развертывание кода». На этом настройка и развертывание производственной среды завершены.
Следует отметить, что MySql среды разработки — 5.7, а производственной среды — 5.6. Будьте осторожны, чтобы не использовать JSON и другие функции MySql 5.7 во время разработки.
Авторизоваться
Давайте поговорим о логине, который в основном использует апплет.
использовать
Клиентский и серверный SDK wafer2 имеют интегрированную логику входа в систему.После того, как клиент ссылается на SDK, метод входа можно реализовать, вызвав его метод входа:
qcloud.login({
success: res => {
console.log('登录成功', res)
},
fail: err => {
console.log('登录失败', err)
}
})
В случае успешного входа данные пользователя будут сохранены в таблице cSessionInfo базы данных cAuth, и данные пользователя будут возвращены.
Выглядит неплохо, но здесь есть некоторые проблемы.
вопрос
После того, как пользователь войдет в систему, информация о пользователе будет кэшироваться локально, а при наличии кеша информация о пользователе будет возвращена напрямую. Однако в sdk есть проблемы с доступом к кешу, при наличии кеша будет возвращено undifined.
Это ошибка очень низкого уровня, и проблема была передана официальному отзыву. На момент написания этой статьи место, где берутся данные, изменилось, но место, где они хранятся, не изменилось...
Итак, чтобы использовать его в обычном режиме, вам нужно перейти на wafer2-client-sdk/lib/login.js и найти место для сохранения пользовательских данных:
Session.set(res.skey);
изменить на:
Session.set(res);
К тому же еще хочу пожаловаться, wx.login и wx.getUserInfo в sdk используются вместе.
Другими словами, информация о пользователе должна быть получена для осуществления входа в систему. И мы знаем, что апплет выведет всплывающее окно, когда получит информацию о пользователе, и пользователь может от него отказаться. В течение некоторого времени после отклонения всплывающее окно не будет отображаться при вызове wx.getUserInfo. Можно сказать, что вафля2 не считает отказ пользователя от авторизации. И это практика, которую WeChat не поддерживает, и она может даже привести к отказу пройти проверку.
Я также сообщил об этой проблеме чиновнику.
первый интерфейс
Обучение должно быть целенаправленным, чтобы поддерживать интерес.После настройки напишем свой интерфейс.
wafer2 основан на платформе Node.js и использует фреймворк Koa2.
Создайте новый файл hello.js в разделе server/controllers и введите следующий код:
module.exports = async ctx => {
ctx.state.data = "Hello World !"
}
Код очень простой, достаточно указать метод, который возвращает «Hello World!», и «Hello World!» будет помещено в данные результата запроса.
Затем открываем server/routes/index.js
Добавьте строку кода:
// 测试接口
router.get('/hello', controllers.hello)
Кода очень много. После сохранения нажмите «Tencent Cloud» — «Загрузить тестовый код», если это первая загрузка, отметьте «Автоматически устанавливать зависимости после развертывания». Дождавшись успешной загрузки, мы можем протестировать наш интерфейс.
Позвоните по адресу xxx.qcloud.la/weapp/hello и посмотрите, возвращаются ли следующие результаты:
{
code: 0,
data: "Hello World !"
}
Поздравляем! Первый интерфейс, который вы сами разработали, настроен!
операции с базой данных
wafer2 использует knex в качестве построителя запросов для базы данных и уже настроен. Для программистов с опытом работы с sql вы можете быстро начать работу.
Мы можем создать необходимые таблицы в базе данных в годы Phpmyadmin Cappinfo.
Если таблица «Book» уже есть, следующий код просто показывает, как добавить, проверить и удалить базу данных в wafer2:
const { mysql } = require('../qcloud')
const uuid = require('node-uuid')
module.exports = async ctx => {
var id = uuid.v1()
// 增
var book = {
id: id,
name: "冰与火之歌",
price: 88
}
await mysql("Book").insert(book)
// 查
var res = await mysql("Book").where({ id }).first()
// 改
await mysql("Book").update({ price: 66 }).where({ id })
// 删
await mysql("Book").del().where({ id })
ctx.state.data = "OK"
}
Операции с базой данных по умолчанию выполняются асинхронно.Если вы хотите дождаться завершения операции, вам нужно добавить await перед оператором операции.
Для более продвинутого использования sql см.официальный сайт knex.js.
Суммировать
Я перенес фон моей маленькой программы "Pengcier" на wafer2. Во время разработки различные питы принесли в Tencent Cloud несколько очевидных ошибок. Возможно, «Touch the word er» — первый апплет, использующий wafer2.
wafer2 проста в использовании. Нам не нужно слишком много знать о фоновой конфигурации: интерфейсный и внутренний коды пишутся в средстве разработки апплета, а внутренний код загружается непосредственно в средстве разработки, что отличает разработку и производственных средах, и в настоящее время он по-прежнему бесплатен, хотя я не знаю, всегда ли он будет. Существует бесплатная версия.
Но недостатки также очевидны в настоящее время, такие как неудобная регистрация, неразумный интерфейс входа и ошибки SDK. Я также сталкивался с ситуациями, когда сервер зависал и его нужно было перезапускать. Я надеюсь, что Tencent Cloud сможет решить эти проблемы в будущем.
В целом вафля2 имеет низкий порог использования, но пока недостаточно стабильна. Можно играть с личными проектами.Если вы хотите использовать его для коммерческих проектов, рекомендуется некоторое время понаблюдать за ним.