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('/find/:query', cors(), function(req, res) { var query = req.params.query; Model.find({ 'request': query }, function(err, result) { if (err) throw err; if (result) { res.json(result) } else { res.send(JSON.stringify({ error : 'Error' })) } }) })
假设以下文档在模型的集合中:
{ "_id" : ObjectId("578abe97522ad414b8eeb55a"), "request" : "JavaScript is Awesome", "time" : 1468710551 } { "_id" : ObjectId("578abe9b522ad414b8eeb55b"), "request" : "JavaScript is Awesome", "time" : 1468710555 } { "_id" : ObjectId("578abea0522ad414b8eeb55c"), "request" : "JavaScript is Awesome", "time" : 1468710560 }
目的是查找并显示"JavaScriptisAwesome"该"request"键下包含的所有文档。
为此,MongoDB的启动和运行server.js有nodeserver.js:
用法
要使用它来查找数据,请在浏览器中转到以下URL:
http://localhost:8080/find/<query>
<query>搜索查询在哪里。
例:
http://localhost:8080/find/JavaScript%20is%20Awesome
输出:
[{ _id: "578abe97522ad414b8eeb55a", request: "JavaScript is Awesome", time: 1468710551, __v: 0 }, { _id: "578abe9b522ad414b8eeb55b", request: "JavaScript is Awesome", time: 1468710555, __v: 0 }, { _id: "578abea0522ad414b8eeb55c", request: "JavaScript is Awesome", time: 1468710560, __v: 0 }]