将数据从MongoDB传递到我的前端应用程序



我在Web服务器上有一个MongoDB,并且我有一个卑鄙的堆栈Web应用程序。在MongoDB中,我有很多数据要将其传递给我的Web应用程序。我已经研究了选择,但是我不确定要采取哪种途径来实现这一目标。我已经考虑使用socket.io在我的Web服务器上设置一个侦听器,以打开与我的数据库的连接,然后进行API调用或直接DB连接以返回我的数据。

我应该补充说我的应用基于Mean.io样板代码。

我的问题是我需要放置socket.io代码吗?

在我的应用程序的根部或仅在需要数据从我的Web服务器传递到我的应用程序的包装/模块中包括socket.io代码是明智的吗?

最后,socket.io甚至是首选的途径吗?是否有另一种方法可以实现更有意义的方法,例如express.js?

除非您需要实时常数,否则不需要使用socket.io。

首先,在您的Express应用中,使用https://github.com/mongodb/node-mongodb-native连接到DB。然后,您只需设置一个JSON端点路由,以使数据发送到。然后,需要数据的客户端网页只需将XHR请求发送到JSON页面。

编辑:OP确实要使用socket.io。

如果要使用socket.io,则必须在服务器和客户端中包含它。

服务器端:

const express = require('express');
const app = express();
const server = require('http').Server(app);
// socket.io
const io = require('socket.io').listen(server);
// handling socket.io requests
io.on('connection', (socket) => {
  log.info('new connection.');
  socket.emit('data', {/** whatever data you need to send **/});
  socket.on('disconnect', (e) => {
    log.info('user disconnected.');
  });
});

客户端:

请确保将socket.io包括在HTML文件中(从网站获取(。然后,在您的客户端JS中:

const socket = io();
socket.on('connect', () => {
  console.log('connected to server.');
});
socket.on('disconnect', () => {
  console.log('disconnected.');
});
socket.on('data', (data) => {
    // this is where you receive the data
    // do something with your data
});

您应该在Express中创建一个路由,然后请用HTTP模块从Angular Spa(例如$ HTTP OU RESTANGULAR(从Angular Spa进行路由。请看本文https://scotch.io/tutorials/setting-up-a-mean-stack-single-page-application

相关内容

  • 没有找到相关文章

最新更新