我是流星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是否正确?
答案 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)
}