流星JS如何为本地应用创建api?

时间:2019-06-08 08:01:22

标签: javascript api meteor

我是流星js的新手,并且在流星中创建了Web应用程序。我需要为移动应用程序以及本机和网络应用程序创建API 将共享相同的数据库。我不清楚从哪里开始创建API 对于本机应用程序?这是我用于网络应用程序的登录路径。 Web应用程序登录路径的路径

 socialapp\socialappv1\app\lib\routes.js

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

并创建API,我已经在socialapp \ socialappv1 \ app \ server \目录中创建了一个server.js文件,我正在尝试创建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");
 }


});   

还有其他方法可以创建Rest API,例如调用控制器还是启动API是否正确?

1 个答案:

答案 0 :(得分:0)

我认为您的代码可能正在尝试设置客户端路由(不确定您使用的是哪台路由器)。

您需要添加服务器端路由(您可以为此使用express),并且处理程序需要附加到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)
}