Mongo基本使用

server/2024/10/18 21:22:23/

连接数据库使用Studio 3T图形化工具

简单实用:express
app.js

// var express = require('express');
// var bodyParser = require('body-parser');// // 创建项目实例
// const app = express();
// // 加载路由控制
// var routes = require('./index');// // 定义数据解析器
// // parse application/x-www-form-urlencoded           body-parser  插件 数据问题
// app.use(bodyParser.urlencoded({ extended: false }));
// // parse application/json
// app.use(bodyParser.json());// // 跨域等
// app.all('*', function (req, res, next) {
//     res.header("Access-Control-Allow-Origin", "*");
//     res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
//     res.header("Access-Control-Allow-Headers", "X-Requested-With");
//     res.header('Access-Control-Allow-Headers', ['mytoken', 'Content-Type']);
//     next();
// });// // 匹配路径和路由
// app.use('/', routes);// app.listen('8080', function () {   //此处的8080 需要和vue项目中的target 端口号后缀一模一样才可。
//     console.log("8080");
// })// module.exports = app;// --------------------------------// vite 工作原理const Koa = require('koa')
const app = new Koa()
const fs = require('fs')
const path = require('path')// 中间件配置
// 处理路由
app.use(async (ctx)=>{const { url } = ctx.request// 首页请求if (url === '/') {// 加载index.htmlctx.type = 'text/html'ctx.body = fs.readFileSync('../index.html', 'utf8')} else if(url.endsWith('.js')) {// js文件加载处理const p = path.join(__dirname, url)ctx.type = 'application/javascript'ctx.body = fs.readFileSync(p, 'utf8')}
})app.listen(3000, ()=>{console.log('vite-stup')
})module.exports = app

同目录下创建

var express = require('express');
var router = express.Router();/* GET home page. */
router.get('/', function (req, res, next) {res.render('index', { title: 'Express' });
});var mongoose = require('mongoose')
//链接test1的数据
var url = "mongodb://worker:XX/test1?authMechanism=SCRAM-SHA-1&authSource=admin"      //连接MongoDB
console.log(url)
mongoose.set('strictQuery', true)mongoose.connect(url, async function (err,client) {if (!err) {console.log('+++++++++连接成功!')// var type1 = { name: String, sex: String, chinese: Number, math: Number, english: Number }// var dataLists = mongoose.model('t1', carSchema)// let a = await mongoose.model('t1', carSchema).find()// console.log('result',a);// mongoose.model('test1', carSchema).find({},null).toArray(function(err, result) { // 返回集合中所有数据//       if (err) throw err;//       console.log('result',result);//       client.close();//   });// client.collection("t1").find().toArray(function(err, result) { // 返回集合中所有数据//     if (err) throw err;//     console.log('result',result);//     client.close();// });}
})// // 数据类型
// var type = { name: String, sex: String, chinese: Number, math: Number, english: Number }
// let carSchema = new Schema({
//   name: { type: String },
//   sex: { type: String },
//   chinese: {
//       type: Number,
//   }
// })
// var mgs = mongoose.model('test1', type)
const Schema = mongoose.Schema;
let carSchema = new Schema({name: { type: String },sex: { type: String },chinese: {type: Number,}
})
// var dataLists = mongoose.model('test1', carSchema)// module.exports = dataLists
// module.exports = mgs
exports.T1 = mongoose.model('test1', carSchema)

创建index,主要是增删改查 路由

var express = require('express');
var router = express.Router();
let dataLists = require('./mongo')  //引入mongo.js 文件// 添加新增  /list  为自定义接口名router.post('/list', function (req, res) {var obj = req.bodydataLists.create(obj, function (err, result) {if (!err) {res.send(result);}})})
// 查询
router.post('/querys', function (req, res) {console.log(req)var obj = req.bodydataLists.find(obj, function (err, result) {if (!err) {res.send(result);}})
})
// 修改
router.post('/modify', function (req, res) {console.log(req)var obj = req.bodydataLists.findOneAndUpdate({ _id: obj._id }, obj, function (err, result) {if (!err) {res.send(result)}})
})
// 删除
router.post('/deleds', function (req, res) {var obj = req.bodyconsole.log(obj)for (let i = 0; i < obj.length; i++) {dataLists.deleteOne({ _id: obj[i] }, function (err, result) {if (!err) {res.send(result)}})}})module.exports = router   

前端页面Vue直接调用
端口号一致

axios.get("http://localhost:6001/api/getinfo").then(res => {console.log('res----', res)if(res.data.code == 200) {studentList.value = res.data.listconsole.log('studentList.value', studentList.value)}// if (res.data.code == 200) {//   this.list = res.data.list;// } else {//   alert("FAIL");// }});

http://www.ppmy.cn/server/131175.html

相关文章

关于部分股市买卖的演示和总结

本文是对上一文的补充&#xff1a;一个普通人的投资认知-CSDN博客 一、简介 假设公司A 向某交易所发行100股股票&#xff0c;每股5元&#xff0c;预计将融资500元。 股民a买了10股&#xff0c;付出50元。 股民b买了20股&#xff0c;付出100元。 股民c买了30股&#xff0c;付出…

AI金融攻防赛:金融场景凭证篡改检测(DataWhale组队学习)

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月学习赛的AI金融攻防赛学习总结文档。本文主要讲解如何解决 金融场景凭证篡改检测的核心问题&#xff0c;以及解决思路和代码实现过程。希望…

nginx反向代理,负载均衡,HTTP配置简述(说人话)

文章目录 反向代理正向代理反向代理普通反向代理分析解释 四层反向代理 负载均衡HTTPS配置基本配置Nginx 账户认证功能 反向代理 正向代理 所谓的正向代理&#xff0c;通俗来说就是&#xff0c;正向代理是一个位于客户端和目标服务器之间的服务器&#xff0c;它代表客户端向目…

Python 在Excel中添加数据条

在Excel中添加数据条是一种数据可视化技巧&#xff0c;它通过条形图的形式在单元格内直观展示数值的大小&#xff0c;尤其适合比较同一列或行中各个单元格的数值。这种表示方式可以让大量的数字信息一目了然。本文将介绍如何使用Python在Excel中的指定单元格区域添加数据条。 …

Flink 批作业如何在 Master 节点出错重启后恢复执行进度?

摘要&#xff1a;本文撰写自阿里云研发工程师李俊睿&#xff08;昕程&#xff09;&#xff0c;主要介绍 Flink 1.20 版本中引入了批作业在 JM failover 后的进度恢复功能。主要分为以下四个内容&#xff1a; 背景解决思路使用效果如何启用 一、背景 在 Flink 1.20 版本之前&am…

鹏哥C语言74---第12次作业:OJ题练习

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> //---------------------------------------------------------------------------- 编程题 1&#xff1a;小乐乐走台阶 小乐乐上课需要走n阶台阶&#xff0c;因为她腿比较长&#xff0…

如何设计一个低成本数据归档及查询的架构

引言 随着企业数据的快速增长&#xff0c;如何高效地管理和查询这些数据成为了一个亟待解决的问题。尤其是当数据量达到一定程度时&#xff0c;传统的数据存储和查询方式往往面临成本高、效率低等挑战。因此&#xff0c;设计一个低成本、高效的数据归档及查询架构变得尤为重要…

选择 PDF 编辑器时要考虑什么?如何选择适用于 Windows 10 的 PDF 编辑器

选择 PDF 编辑器时要考虑什么&#xff1f; 随着技术的出现&#xff0c;您在网上浏览时肯定会遇到一些 PDF 软件。但是&#xff0c;选择PDF 编辑器时需要考虑什么&#xff1f;如果您是重度用户并将在您的工作场所使用它&#xff0c;建议您找到专业、使用方便且能够帮助您完成任…