【发布时间】:2016-09-03 10:17:02
【问题描述】:
所以,我正在使用 Node.JS 和 MongoDB 编写日历应用程序。但我无法将数据库中的信息添加到当前日历。
这是我在尝试加载 LocalHost:3000/init 时收到的错误
TypeError:无法读取未定义的属性“插入” 在 /home/patrick/Desktop/Javascript/CalandarApp/server.js:30:13 在 Layer.handle [as handle_request] (/home/patrick/Desktop/Javascript/CalandarApp/node_modules/express/lib/router/layer.js:95:5) 在下一个(/home/patrick/Desktop/Javascript/CalandarApp/node_modules/express/lib/router/route.js:131:13) 在 Route.dispatch (/home/patrick/Desktop/Javascript/CalandarApp/node_modules/express/lib/router/route.js:112:3) 在 Layer.handle [as handle_request] (/home/patrick/Desktop/Javascript/CalandarApp/node_modules/express/lib/router/layer.js:95:5) 在/home/patrick/Desktop/Javascript/CalandarApp/node_modules/express/lib/router/index.js:277:22 在 Function.process_params (/home/patrick/Desktop/Javascript/CalandarApp/node_modules/express/lib/router/index.js:330:12) 在下一个(/home/patrick/Desktop/Javascript/CalandarApp/node_modules/express/lib/router/index.js:271:10) 在 jsonParser (/home/patrick/Desktop/Javascript/CalandarApp/node_modules/body-parser/lib/types/json.js:100:40) 在 Layer.handle [as handle_request] (/home/patrick/Desktop/Javascript/CalandarApp/node_modules/express/lib/router/layer.js:95:5)
这里是 Javascript:
var express = require('express');
var bodyParser = require('body-parser');
var path = require('path');
//Connect to MongoDB
var mongoskin = require('mongoskin');
var db = require('mongodb');
mongoskin.db("mongodb://localhost:3000/testDB", {w: 0});
//Creates Express Application
var app = express();
app.use(express.static('public'));
//is necessary for parsing POST request
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
console.log('Express server started on port 3000');
app.get('/init', function(req, res){
db.event.insert({
text:"Test Event A",
start_date: new Date(2016,5,1),
end_date: new Date(2016,5,5)
});
db.event.insert({
text:"Test Event B",
start_date: new Date(2016,5,3),
end_date: new Date(2016,5,8),
color: "#DD8616"
});
res.send("Test Events were added to the Database")
});
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++)
data[i].id = data[i]._id;
//output response
res.send(data);
});
});
app.listen(3000);
【问题讨论】:
-
我认为您没有正确设置集合。不应该是
db.collection('event').insert()。此外,您似乎正在使用.get为.post路线。如果您要向数据库中插入信息,则需要使用.post而不是.get。
标签: javascript node.js mongodb mongoskin