使用http查询字符串作为数据库对象node.js / express

时间:2015-01-26 00:45:48

标签: node.js mongodb express

尝试使用node.js / express / mongodb。

我正在使用

http://localhost:3000/models/save?model= {" name":" blah blah blah"}

将测试JSON对象传递给express route / models / save以保存到mongodb。除了collection.insert语句之外,一切都很有效,它返回一个" undefined"错误。

我认为必须是var model = req.query.model从查询字符串中提取的参数;格式不正确。有什么想法吗?

代码如下:

var express = require('express');
var router = express.Router();

router.get('/save', function(req, res) {

// Set our internal DB variable
var db = req.db;

var model = req.query.model;
console.log (model);

// Set our collection
var collection = db.get('models');

// Submit to the DB
collection.insert ( model, function (err, doc) {
    if (err) {
        // If it failed, return error
        res.send("There was a problem saving to the database.");
        console.log(doc);
    }
    else {
        console.log ("model saved");
        res.send("OK")
    }
});
});
module.exports = router;

1 个答案:

答案 0 :(得分:0)

请尝试以下方法:

var model = JSON.parse(req.query.model);

而不是

var model = req.query.model;

JSON.parse方法解析JSON字符串表示(在您的情况下是model请求查询参数)并返回Javascript对象,然后您可以在插入过程中使用它。

我希望它有所帮助。