我已經按照DTHMLX調度程序tutorial,但我一直無法得到db.event.insert()
工作,因爲它的路線沒有觸發。但是,當我通過shell插入數據時,我能夠顯示來自我的MongoDB的數據。DHTMLX調度程序與節點JS
像教程一樣,我使用MongoSkin作爲MongoDB驅動程序。 MongoSkin和Express都是相同的版本"mongoskin": "~0.6.0"
& "express": "~3.3.8"
就像它在教程中一樣。
<!-- index.html -->
<!doctype html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Basic initialization</title>
</head>
<script src="codebase/dhtmlxscheduler.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" href="codebase/dhtmlxscheduler.css" type="text/css" media="screen" title="no title" charset="utf-8">
<style type="text/css" media="screen">
html, body{
margin:0px;
padding:0px;
height:100%;
overflow:hidden;
}
</style>
<script type="text/javascript" charset="utf-8">
function init() {
scheduler.config.xml_date="%Y-%m-%d %H:%i"; //changes date format
scheduler.init('scheduler_here',new Date(),"month"); // when the calendar is initialized
scheduler.templates.xml_date = function(value){ return new Date(value); };
scheduler.load("/data", "json");
var dp = new dataProcessor("/data");
dp.init(scheduler);
dp.setTransactionMode("POST", true);
console.log('init on index finished');
}
</script>
<body onload="init();">
<div id="scheduler_here" class="dhx_cal_container" style='width:100%; height:100%;'>
<div class="dhx_cal_navline">
<div class="dhx_cal_prev_button"> </div>
<div class="dhx_cal_next_button"> </div>
<div class="dhx_cal_today_button"></div>
<div class="dhx_cal_date"></div>
<div class="dhx_cal_tab" name="day_tab" style="right:204px;"></div>
<div class="dhx_cal_tab" name="week_tab" style="right:140px;"></div>
<div class="dhx_cal_tab" name="month_tab" style="right:76px;"></div>
</div>
<div class="dhx_cal_header">
</div>
<div class="dhx_cal_data">
</div>
</div>
</body>
服務器文件與本教程相差無幾。服務器文件從app.js更改爲server.js。
//server.js
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var db = require('mongoskin').db("mongodb://localhost:27017/testdb", { w: 0});
db.bind('event');
var app = express();
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.bodyParser());
app.get('/init', function(req, res){
if (err) throw err;
console.log('before object');
db.event.insert({
text:"My test event A",
start_date: new Date(2017,5,1),
end_date: new Date(2017,5,5)
}, console.log('first object run'));
db.event.insert({
text:"My test event B",
start_date: new Date(2017,5,19),
end_date: new Date(2017,5,24)
});
db.event.insert({
text:"Morning event",
start_date: new Date(2017,5,4),
end_date: new Date(2017,5,4)
});
db.event.insert({
text:"One more test event",
start_date: new Date(2017,5,3),
end_date: new Date(2017,5,8),
color: "#DD8616"
});
res.send("Test events were added to the database");
console.log('events inserted?')
});
app.get('/data', function(req, res){
db.event.find().toArray(function(err, data){
//set id property for all records
for (var i = 0; i < data.length; i++)
// console.log('in for loop');
data[i].id = data[i]._id;
//output response
res.send(data);
console.log('data sent');
});
});
app.listen(3000);
console.log('listening on port 3000');
我能夠使用app.get('/data'
路線和回調函數,並得到我的收藏印在日曆,但只在MongoDB的shell命令行插入之後。
插入數據也可以這樣說,因爲db.event.insert
方法錯過了,因爲app.get('/init'
路由永遠不會被觸發。我從測試中發現,使用console.logs。
我閱讀了DHTMLX Scheduler教程,網站文檔,MongoDB文檔和MongoSkin文檔。我可能完全錯過了一個明顯的解決方案,但我似乎無法找到我在這裏想念的東西,所以任何幫助,將不勝感激。謝謝。
嘿感謝您的答覆。 我之前有過這個帖子數據,但是因爲我無法獲得測試數據的工作而被排除在這個問題之外。 把帖子放回去並沒有改變我的結果。我提到他們的github回購。仍然不確定我做錯了什麼。 – Coffeeteer