Node.js 使用Mongoose和Express.js路由将数据保存到MongoDB

示例

设定

首先,使用以下命令安装必要的软件包:

npm install express cors mongoose

代码

然后,将依赖项添加到server.js文件中,创建数据库模式和集合名称,创建Express.js服务器,并连接到MongoDB:

var express = require('express');
var cors = require('cors'); // 我们将使用CORS启用跨源域请求。
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var app = express();

var schemaName = new Schema({
    request: String,
    time: Number
}, {
    collection: 'collectionName'
});

var Model = mongoose.model('Model', schemaName);
mongoose.connect('mongodb://localhost:27017/dbName');

var port = process.env.PORT || 8080;
app.listen(port, function() {
    console.log('Node.js listening on port ' + port);
});

现在添加Express.js用于写入数据的路由:

app.get('/save/:query', cors(), function(req, res) {
    var query = req.params.query;

    var savedata = new Model({
        'request': query,
        'time': Math.floor(Date.now() / 1000) // 以Unix时间戳格式保存数据的时间
    }).save(function(err, result) {
        if (err) throw err;

        if(result) {
            res.json(result)
        }
    })
})

在这里,query变量将是<query>传入HTTP请求中的参数,并将其保存到MongoDB:

var savedata = new Model({
    'request': query,
    //...

如果尝试写入MongoDB时发生错误,您将在控制台上收到一条错误消息。如果一切成功,您将在页面上看到JSON格式的已保存数据。

//...
}).save(function(err, result) {
    if (err) throw err;

    if(result) {
        res.json(result)
    }
})
//...

现在,您需要启动MongoDB并server.js使用来运行文件node server.js。

用法

要使用它来保存数据,请在浏览器中转到以下URL:

http://localhost:8080/save/<query>

<query>您希望保存的新请求在哪里。

例:

http://localhost:8080/save/JavaScript%20is%20Awesome

以JSON格式输出:

{
    __v: 0,
    request: "JavaScript is Awesome",
    time: 1469411348,
    _id: "57957014b93bc8640f2c78c4"
}