我在测试请求的时候,往往需要一些数据进行测试,通常数据是从服务器请求的,需要服务器暴露相应的请求URL才能请求到数据,所以我自己给自己搭建了一个本地服务器数据,使用NodeJS + MongoDB搭建的。
重点是亲测有效!!!!!!
1.准备工作
nodeJS+ MongoDB 环境安装,此处可参考我的安装过程。
1.1 安装nodeJS
1.2 安装MongoDB
[安装MongoDB]
后边会补上相应安装文档
1.3 参考文章
express教程、RESTful API教程、连接 MongoDB
2.主要操作
2.1 打开终端,安装express和MongoDB依赖
npm i express -S
npm install mongodb
我自己安装的截图:
C:\Users\yangl->npm install mongodb
npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\yangl-\package.json’
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\yangl-\package.json’
npm WARN element-ui@2.12.0 requires a peer of vue@^2.5.17 but none is installed. You must install pe
er dependencies yourself.
npm WARN yangl- No description
npm WARN yangl-* No repository field.
npm WARN yangl-* No README data
npm WARN yangl-* No license field.
+ mongodb@3.4.0
added 8 packages in 80.205s
憋关注我安装这个80s,我网慢。正常情况下没有这么慢滴!!
2.2 创建一个js文件,如 server-mogodb.js
const express = require('express');
const app = express();
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/runoob";
//创建连接
MongoClient.connect(url, { useNewUrlParser: true }, function (err, db) {
if (err) throw err;
console.log('数据库已创建');
var dbase = db.db("runoob");
//创建集合
dbase.createCollection('site', function (err, res) {
if (err) throw err;
console.log("创建集合!");
db.close();
});
});
//插入数据--insertOne
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("runoob");
var myobj = { name: "菜鸟教程", url: "www.runoob" };
dbo.collection("site").insertOne(myobj, function(err, res) {
if (err) throw err;
console.log("文档插入成功");
db.close();
});
});
//插入多条数据--insertMany
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("runoob");
var myobj = [
{ name: '菜鸟工具', url: 'https://c.runoob.com', type: 'cn'},
{ name: 'Google', url: 'https://www.google.com', type: 'en'},
{ name: 'Facebook', url: 'https://www.google.com', type: 'en'}
];
dbo.collection("site").insertMany(myobj, function(err, res) {
if (err) throw err;
console.log("插入的文档数量为: " + res.insertedCount);
db.close();
});
});
//查询数据--find
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("runoob");
dbo.collection("site"). find({}).toArray(function(err, result) { // 返回集合中所有数据
if (err) throw err;
console.log(result);
//res.json(result);
db.close();
});
});
//查询指定条件的数据--find(whereStr)
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("runoob");
var whereStr = {"name":'菜鸟教程'}; // 查询条件
dbo.collection("site").find(whereStr).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
//更新1条数据---updateOne
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("runoob");
var whereStr = {"name":'菜鸟教程'}; // 查询条件
var updateStr = {$set: { "url" : "https://www.runoob.com" }};
dbo.collection("site").updateOne(whereStr, updateStr, function(err, res) {
if (err) throw err;
console.log("文档更新成功");
db.close();
});
});
//更新多条数据---updateMany
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("runoob");
var whereStr = {"type":'en'}; // 查询条件
var updateStr = {$set: { "url" : "https://www.runoob.com" }};
dbo.collection("site").updateMany(whereStr, updateStr, function(err, res) {
if (err) throw err;
//result.nModified 为更新的条数
console.log(res.result.nModified + " 条文档被更新");
db.close();
});
});
//删除1条数据
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("runoob");
var whereStr = {"name":'菜鸟教程'}; // 查询条件
dbo.collection("site").deleteOne(whereStr, function(err, obj) {
if (err) throw err;
console.log("文档删除成功");
db.close();
});
});
//除多条数据--deleteMany
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("runoob");
var whereStr = { type: "en" }; // 查询条件
dbo.collection("site").deleteMany(whereStr, function(err, obj) {
if (err) throw err;
//obj.result.n 删除的条数
console.log(obj.result.n + " 条文档被删除");
db.close();
});
});
2.3 执行 node server-mogodb.js
在终端执行命令 :
node server-mogodb.js
2.4 使用Navicat Premium工具访问
PS: 可以直接使用相应操作MogoDB的方法进行操作即可。