【发布时间】:2015-01-13 15:06:56
【问题描述】:
我是 Nodejs 世界的新手。我正在尝试使用 Mongoose 在 MongoDB 中插入数据。这个想法是
- 我将在节点上运行一个服务器
- 任何传入的 POST 数据都将保存在 Mongo 中。
以下代码运行时的问题,没有数据保存在 MongoDB 中,也没有显示错误。我在这里错过了什么吗?任何帮助将不胜感激。
我有以下代码在 mongoDB 中为传入的 http 请求写入数据。
var http = require('http') // http module
, fs = require('fs') // file system module
, qs = require('querystring') // querystring parser
, mongoose = require('mongoose');
mongoose.connect("mongodb://localhost/app_data_db");
var db = mongoose.connection;
var appDataSchema = new mongoose.Schema({
record_id: Number,
app_version: Number,
imei: String,
created_time: Date,
device_uid: String,
model: String
});
var appDataModel = mongoose.model("app_data_collection",appDataSchema);
var PORT=8080;
http.createServer(function(req,res){
if(req.method == "POST") {
var POST = {};
//parse query string
req.on('data', function(data) {
data = data.toString();
data = data.split('&');
for (var i = 0; i < data.length; i++) {
var _data = data[i].split("=");
POST[_data[0]] = _data[1];
}
db.once('open', function (callback) {
appDataModel.create({
record_id: POST["id"],
app_version: POST["app_version"],
imei: POST["imei"],
created_time: new Date((parseInt(POST["created_time"]) + 19800) *1000), // to set correct time zone IST
device_uid: POST["device_uid"],
model: POST["model"]
});
});
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('saved to DB:'+POST["id"]+'\n');
console.log('saved to DB:'+POST["id"]+'\n');
});
mongoose.disconnect();
}
}).listen(PORT);
为了测试这一点,我手动触发了这个 curl 调用:
curl -X POST --data "id=58648148&app_version=4.8&imei=355886053224492&created_time=1417372202&device_uid=e385c8a5a4c01304&model=GT-I9082" http://localhost:8080
【问题讨论】:
-
您正在创建模型,但没有将其保存到数据库中。
标签: javascript node.js mongodb mongoose