デモアプリケーション私は建物がいくつかがMLAB上で実行されているMongoDBのインスタンスによって骨抜きにしてたSuperAgentによって取得されていますコードを反応させるのに役立つためにエクスプレスを使用していますよモンゴDBを照会します私の主要なリアクションコード(index.htmlを介してロードされている)を呼び出します。電子:それは準備ができて前にExpress.jsサーバは
電子メールでデスクトップバージョンを作成しようとしていて、デフォルトの( '/')GETルートの初期データベースクエリで問題が発生しています。
つまり、Superagentを使用すると、アプリケーションは接続前にデータベースにアクセスしようとし、最初のクエリは空に戻ります。私がページをリフレッシュすると、すべてがそこにあるので、最終的に接続しています。それは、電子に移動してからタイミングが何らかの形で変わったということだけです。
これは私の急行サーバーは、私は電子に移動以来です:
const electron = require('electron');
const app = require('app');
const BrowserWindow = require('browser-window');
const express = require('express'),
db = require('./model/db'),
bodyParser = require('body-parser'),
http = require('http'),
path = require('path');
const expressApp = express();
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
var mainWindow = null;
// Quit when all windows are closed.
app.on('window-all-closed', function() {
// On OS X it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
if (process.platform != 'darwin') {
app.quit();
}
});
function onListening() {
mainWindow.loadURL('http://127.0.0.1:3000');
//mainWindow.toggleDevTools();
}
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
app.on('ready', function() {
// Create the browser window.
mainWindow = new BrowserWindow({width: 800, height: 600});
expressApp.set('port', process.env.PORT || 3000);
expressApp.use(bodyParser.json());
expressApp.use(bodyParser.urlencoded({ extended: true }));
expressApp.use(express.static(path.join(__dirname, './')));
expressApp.get('/', function(req, res) {
res.render('index');
});
expressApp.get('/tasks/all', db.readAllTasks);
expressApp.post('/tasks/createTask', db.createTask);
expressApp.delete('/tasks/deleteTask/:id', db.deleteTask);
expressApp.put('/tasks/updateTask/:id', db.updateTask);
server = http.createServer(expressApp);
server.listen(expressApp.get('port'), function(){console.log("Listenning!")});
server.on('listening', onListening);
// Emitted when the window is closed.
mainWindow.on('closed', function() {
mainWindow = null;
});
});
サーバーだけのように見えた前に:私は私が行うために必要なすべての動きである、そう思ってい
var express = require('express');
var db = require('./model/db');
var bodyParser = require('body-parser');
var http = require('http');
var path = require('path');
var app = express();
app.set('port', process.env.PORT || 3000);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(path.join(__dirname, './')));
app.get('/', function(req, res) {
res.render('index');
});
app.get('/tasks/all', db.readAllTasks);
app.post('/tasks/createTask', db.createTask);
app.delete('/tasks/deleteTask/:id', db.deleteTask);
app.put('/tasks/updateTask/:id', db.updateTask);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
私のres.Renderいくつかの種類のコールバックにレンダリング?
また、db.js内の何かが変更する必要があります。コンソールに記録し、私はリフレッシュした場合、私はDBからデータを取得することができます
var Task = mongoose.model('Task', taskSchema);
mongoose.connect('<connection string>');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function(){
console.log('Connected to mongoDB');
});
var allTasks = db.collection('tasks');
function readAllTasks(req, res) {
var holster = []
allTasks.find({}).forEach(function(doc){
holster.push(doc);
}, function(){
res.send(holster);
});
}
exports.readAllTasks = readAllTasks;
私が手にエラーがallTasksが定義されていないと言い、右そのエラーの後に、私は「MongoDBのに接続されている」取得:ここでは短いバージョンがあります問題ない。
ありがとうございます!
お返事ありがとうございました!私は私のために、速い修正は、アプリケーションを正しく構造化し、電子に移動したときになぜそれが変わったのかを理解するほど面白くないと思う。私が迷惑をかけているのは、なぜ私が以前に待つ必要がなかったのかですが、今私はそうしています。 – alphanumeric0101