Meteor JS, как создать API для родного приложения? - PullRequest
0 голосов
/ 08 июня 2019

Я новичок в meteor js, и веб-приложение создано в meteor.Мне нужно создать API для мобильного приложения, а нативное и веб-приложение будет использовать одну и ту же базу данных.Это мне не понятно откуда мне нужно начинать создавать API для нативного приложения?Это мой маршрут входа в систему, который я использую для веб-приложения.Путь к маршруту входа в веб-приложение

 socialapp\socialappv1\app\lib\routes.js

 Router.route('login', {
   name: 'login',
   controller: 'LoginController',
   where: 'client'
 });

и для создания API Я создал файл server.js в каталоге socialapp \ socialappv1 \ app \ server \ и пытаюсь создать API для регистрации пользователя.

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

.post(function(){
//console.log(this.request.body);
//return false;
let user = { 
email : this.request.body.email,
username : this.request.body.username,
password : this.request.body.password,

};

});
 const userId = Accounts.createUser(user);
 if(userId)
 {

    console.log("Register");
 }else{

    console.log("Not Register");
 }


});   

Есть ли другой способ создания API отдыха, например, для вызова контроллеров, или это правильно для запуска API?

1 Ответ

0 голосов
/ 08 июня 2019

Я думаю, что ваш код пытается настроить клиентские маршруты (не уверен, какой маршрутизатор вы используете).

Вам нужно добавить серверные маршруты (и вы можете использовать экспресс для этого), а обработчик должен подключиться к среде Meteor

Это некоторый код, который я написал для обработки подтверждений платежей, поступающих на сервер: (конечно, код на стороне сервера)

import { Meteor } from 'meteor/meteor'
import express from 'express'
import bodyParser from 'body-parser'

const debug = require('debug')('b2b:server-payments')

async function acceptPayment(req, res) {
  // We need to bind to the Meteor environment for this to work.
  Meteor.bindEnvironment(() => {
    debug('/payment hook', req.body)
    try {
// Handle the data that's in req.body ...
  : 
  :
    } catch (e) {
      console.error(e)
    }
  })()

  res.status(200).json({ status: 'ok' }) // Change this if your data isn't JSON
}

export function setupPaymentsApi() {
  debug('Setting up payment hooks')
  const app = express()
  app.use(bodyParser.json({ extended: false }))

  app.post('/payment', acceptPayment)
  app.get('/api', (req, res) => {
    res.status(200).json({ message: 'B2B Payments API' }) // Shouldn't call this, just for testing for now
  })

  WebApp.connectHandlers.use(app)
}

...