Javascript 将Express.js-REST-Endpoint与Meteor应用程序集成
我有一个棘手的情况:我目前正在构建一个完整的meteor功能应用程序。但出于自动化原因,我还需要将一些功能公开为REST服务(第三方应用程序应该能够通过REST插入和接收数据) express.js-package似乎是将REST端点构建到node.js环境中的一个非常可靠的选项,但我想知道如何将该端点集成到meteor中 我想要的是通过例如Javascript 将Express.js-REST-Endpoint与Meteor应用程序集成,javascript,node.js,rest,express,meteor,Javascript,Node.js,Rest,Express,Meteor,我有一个棘手的情况:我目前正在构建一个完整的meteor功能应用程序。但出于自动化原因,我还需要将一些功能公开为REST服务(第三方应用程序应该能够通过REST插入和接收数据) express.js-package似乎是将REST端点构建到node.js环境中的一个非常可靠的选项,但我想知道如何将该端点集成到meteor中 我想要的是通过例如http://myfancysite.com/my-display-route同时可以通过访问我的REST端点,例如http://myfancysite.c
http://myfancysite.com/my-display-route
同时可以通过访问我的REST端点,例如http://myfancysite.com/api/insert-crazy-data/
“正常”站点可以通过启动Meteor时定义的端口访问。问题是,我必须为express.js指定一个不同的端口,我希望meteor和express共享同一个端口,因为我不想在不同的端口上访问REST端点
这有可能吗D
下面是我目前用于express的一些代码
//<meteor-root>\server\main.jsx
import { Meteor } from 'meteor/meteor';
// do some meteor things
...
//require express
var express = require('express');
//create application
var app = express();
//use environement defined port or 3000
var port = process.env.PORT || 3000;
//create router
var router = express.Router();
//define routes
...
//register all routes with '/api'
app.use('/api', router);
//start server
app.listen(port); // <= this should be the same port as the meteor application itself!
console.log('listening on port ' + port);
/\server\main.jsx
从“流星/流星”导入{Meteor};
//做一些流星的事情
...
//需要快递
var express=需要(“express”);
//创建应用程序
var-app=express();
//使用环境定义的端口或3000
var port=process.env.port | 3000;
//创建路由器
var router=express.router();
//定义路线
...
//使用“/api”注册所有路由
应用程序使用('/api',路由器);
//启动服务器
应用程序侦听(端口);// Meteor本质上是一个已公开http服务器的节点应用程序,这意味着您可以定义服务器路由,如下所示:
import { WebApp } from 'meteor/webapp';
WebApp.connectHandlers.use('/hello', (req, res, next) => {
res.writeHead(200);
res.end('Hello world from your server');
});
如果您坚持使用express,则可以将您的express routes注册为connect中间件,如下所示:
import { Meteor } from 'meteor/meteor';
import { WebApp } from 'meteor/webapp';
import express from 'express';
const app = express();
app.get('/api', (req, res) => {
res.status(200).json({ message: 'Hello from Express!!!'});
});
WebApp.connectHandlers.use(app);
瞧 这似乎是一个坚实的解决方案,我的项目!我待会再试试那个!非常感谢!这确实让我很开心,但我仍然不敢相信我以前没有遇到过WebApp
模块。