Javascript 将Express.js-REST-Endpoint与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

我有一个棘手的情况:我目前正在构建一个完整的meteor功能应用程序。但出于自动化原因,我还需要将一些功能公开为REST服务(第三方应用程序应该能够通过REST插入和接收数据)

express.js-package似乎是将REST端点构建到node.js环境中的一个非常可靠的选项,但我想知道如何将该端点集成到meteor中

我想要的是通过例如
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
模块。