Рубрики
Без рубрики

Редкие операции CRUD в Meteor.js

METEOR – это популярное основание для создания веб-приложений в реальном времени. Мы уже охватываем учебник, который объясняет, как создать систему чата с помощью METEOR.JS. В этом уроке мы узнаем, как разработать ATTUL API с использованием Meteor, который выполняет операции CRUD.

Автор оригинала: Shahid Shaikh.

Вступление

METEOR – это популярное основание для создания веб-приложений в реальном времени. Мы уже охватываем учебник, который объясняет, как создать систему чата с помощью METEOR.JS. В этом руководстве мы узнаем, как разработать reзов API, используя Meteor, который выполняет операции CRUD.

Создание нового проекта

Создайте новый проект Meteor, используя следующую команду:

meteor create appName

Выберите имя приложения по вашему выбору. Как только Meteor сделан создание проекта, вы увидите каталоги и файлы, созданные Meteor в имени папки. Мы не понадобится их на сегодняшний день, поэтому мы удалим все эти файлы и создаем все, что нам нужно в предстоящем разделе.

Установка железа-маршрутизатора

Для того, чтобы выполнить маршрутизацию в Meteor, мы будем использовать Этот удивительный пакет Отказ Запустите следующую команду с вашего терминала и убедитесь, что вы находитесь в вашем каталоге проекта.

meteor add iron:router
Unixroot Machine

Это загрузится и устанавливает пакет в ваш проект, и сколько времени требуется, может варьироваться в зависимости от подключения к Интернету.

Разработка спокойного API

Как я уже упоминал, Meteor тесно связан с клиентскими и серверными технологиями, поэтому вы можете изменить их как из них в том же проекте. Но мы будем использовать сторону отдохнуть сервер, потому что нам нужно http, чтобы позвонить нашей конечной точке.

Создайте новую папку в вашем проекте под названием «Сервер» и создайте новый файл внутри него с любое имя. Я предпочел server.js Отказ

Мы будем выполнять операцию CRUD над API отдыха на Пользователь модель. Вот серверный скелет.

if(Meteor.isServer) {
   // When Meteor starts, create new collection in Mongo if not exists.
    Meteor.startup(function () {
        User = new Meteor.Collection('user');
    });

// GET /user - returns every message from MongoDB collection.

Router.route('/users',{where: 'server'})
    .get(function(){
        var response = User.find().fetch();
        this.response.setHeader('Content-Type','application/json');
        this.response.end(JSON.stringify(response));
    })

  // POST /message - {message as post data}
  // Add new message in MongoDB collection.

    .post(function(){
        var response;
        if(this.request.body.userName === undefined || this.request.body.userPassword === undefined) {
            response = {
                "error" : true,
                "message" : "invalid data"
            };
        } else {
            User.insert({
                UserName : this.request.body.userName,
                UserPassword : this.request.body.userPassword
            });
            response = {
                "error" : false,
                "message" : "User added."
            }
        }
        this.response.setHeader('Content-Type','application/json');
        this.response.end(JSON.stringify(response));
    });

Router.route('/users/:id',{where: 'server'})

    // GET /message/:id - returns specific records

    .get(function(){
        var response;
        if(this.params.id !== undefined) {
            var data = User.find({_id : this.params.id}).fetch();
            if(data.length > 0) {
                response = data
            } else {
                response = {
                    "error" : true,
                    "message" : "User not found."
                }
            }
        }
        this.response.setHeader('Content-Type','application/json');
        this.response.end(JSON.stringify(response));
    })

    // PUT /message/:id {message as put data}- update specific records.

    .put(function(){
        var response;
        if(this.params.id !== undefined) {
            var data = User.find({_id : this.params.id}).fetch();
            if(data.length > 0) {
                if(User.update({_id : data[0]._id},{$set : {UserName : this.request.body.userName,UserPassword : this.request.body.userPassword}}) === 1) {
                    response = {
                        "error" : false,
                        "message" : "User information updated."
                    }
                } else {
                    response = {
                        "error" : true,
                        "message" : "User information not updated."
                    }
                }
            } else {
                response = {
                    "error" : true,
                    "message" : "User not found."
                }
            }
        }
        this.response.setHeader('Content-Type','application/json');
        this.response.end(JSON.stringify(response));
    })

    // DELETE /message/:id delete specific record.

    .delete(function(){
        var response;
        if(this.params.id !== undefined) {
            var data = User.find({_id : this.params.id}).fetch();
            if(data.length >  0) {
                if(User.remove(data[0]._id) === 1) {
                    response = {
                        "error" : false,
                        "message" : "User deleted."
                    }
                } else {
                    response = {
                        "error" : true,
                        "message" : "User not deleted."
                    }
                }
            } else {
                response = {
                    "error" : true,
                    "message" : "User not found."
                }
            }
        }
        this.response.setHeader('Content-Type','application/json');
        this.response.end(JSON.stringify(response));
    });
  }

Объяснение

На запуск Meteor Server мы создаем новую коллекцию MongoDB, только если его не создан (Meteor сделает проверку, которая создана или нет).

Мы проверяем, является ли этот маршрут для сервера или клиента, используя где пункт. Это определит, что этот код не будет работать в интернет-маршрутизации.

Вот как мы делаем операцию Crud на Пользователь модель.

1: Получить/пользователи

Этот запрос означает «потянуть каждого пользователя из модели», поэтому мы будем запускать запрос MongoDB Petch Squery и потяните их из нашей базы данных. Мы будем формировать ответ JSON в своих Json.stringify () Функция и установить его заголовки, чтобы пользовательский интерфейс или инструмент для отдыха можно интерпретировать его.

2: Get/пользователи/: ID

В этом запросе нам нужно потянуть данные конкретного пользователя. Так что нужно сделать, нам нужно следовать:

  • Найдите, существует ли пользователь или нет.
  • Если пользователь существует, то верните данные пользователя
  • остальное, верните сообщение об ошибке.

Чтобы найти пользователя, мы используем одинаковую функцию .fetch () , но с идентификатором пользователя в качестве нашего параметра.

3: Post/пользователи – создайте новый пользователь

В этом запросе мы создадим новый пользователь в нашей модели. Для этого мы используем MongoDB Создать () Функция, использующая наше имя модели, которое является пользователем.

4: PUT/пользователи/: ID

В этом запросе мы обновим информацию о пользователе. Для этого мы сделаем следующее:

  • Найдите, существует ли пользователь или нет.
  • Если пользователь существует, то обновите данные пользователя
  • остальное, верните сообщение об ошибке.

Мы используем .fetch () Функция для выполнения проверки и MongoDB .update () Функция для переопределения данных в модели Mongo.

5: Удалить/Пользователи/: ID

В этом запросе мы удалим данные пользователя. Для того, чтобы сделать это, мы сделаем следующее:

  • Найдите, существует ли пользователь или нет.
  • Если пользователь существует, то удалите данные пользователя
  • остальное, верните сообщение об ошибке.

Мы используем .fetch () Функция для выполнения проверки и функции mongoDB `.

Запуск кода

Перейдите в свой каталог проекта и введите следующую команду для запуска вашего проекта.

meteor
Unixroot Machine

1: создать новый пользователь

Вот запрос от симулятора API под названием Postman.

Unixroot Machine

2: Получить информацию о пользователе

Postman API Sim.

3: получить конкретную информацию о пользователе

Postman API Sim.

4: обновить информацию о пользователе

Postman API Sim.

5: Удалить информацию о пользователе

Postman API Sim.

Заключение

Meteor предоставляет нам очень гибкий способ разработки приложений в реальном времени с использованием JavaScript. Остальные API являются одним из широко используемых подходов для разработки мобильных приложений или разработки веб-приложений, а Meteor сделал это действительно легко.