沒有必要使用socket.io,除非你想要實時的持續,持續的從你的數據庫到你的前端的信息流。
首先在您的快速應用程序中,使用https://github.com/mongodb/node-mongodb-native
連接到分貝。然後,您可以爲要發送的數據設置JSON端點路由。然後,需要數據的客戶端網頁只需向JSON頁面發送XHR請求。
編輯: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.');
});
});
客戶端:
一定要包括在HTML文件中socket.io(從網站得到它)。然後,在你的客戶端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
});
實時持續流實際上是我需要的,所以,它聽起來就像是socket.io正確的路線我想借此 – Harry
我很欣賞這樣的功能,它使事情更清晰。我想傳遞給我的前端應用程序的數據實際上是在單獨的MongoDB服務器上。我需要以某種方式通過類似這樣的調用從客戶端文件建立到服務器的連接 - var socket = io.connect('server address here'); 我的問題是這個連接適合我正在使用的堆棧 – Harry
不,socket.io需要連接到快速Web服務器,而不是連接到mongo數據庫服務器。快速Web服務器然後連接到Mongo數據庫服務器。在我的答案的鏈接中使用NodeJS API,您需要從數據庫獲取數據,並通過回調將其傳遞給socket.io。 – frozen