Начните работу с Tencent Cloud wafer2 и легко разверните серверную часть небольших программ!

задняя часть Апплет WeChat
Начните работу с Tencent Cloud wafer2 и легко разверните серверную часть небольших программ!

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 имеет низкий порог использования, но пока недостаточно стабильна. Можно играть с личными проектами.Если вы хотите использовать его для коммерческих проектов, рекомендуется некоторое время понаблюдать за ним.