javascript - 试图了解此 Node.js 代码的哪一部分负责将我的 POST 请求定向到 mongoose/mongodb 服务器?
问题描述
所以我是编程新手,我正在学习关于 Web 开发的 Udemy 课程。我正在学习这门课程,但这段代码中有一些我不明白的地方。我设置了一个 MongoDB 数据库,并且正在使用带有 NPM 包管理器的 Node.js。我可以清楚地看到 server.js 文件是如何链接到数据库的:
var db = mongoose.connect('mongodb://localhost/swag-shop');
我可以清楚地看到 server.js 如何从该app.post()
部分的前端应用程序中拉入 POST 请求。
我看不到的是,一旦将 POST 拉入文件的逻辑,server.js
将 POST 中的 json 信息引导到 MongoDB 数据库中是什么?它正在进入那里。当我过去mongosh
直接查看数据库时它就在那里,但我不明白它实际上是如何进入的。谢谢大家的帮助。
server.js:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/swag-shop');
var Product = require('./model/product');
var WishList = require('./model/wishlist');
const { request } = require('express');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.post('/product', function(request, response) {
var product = new Product();
product.title = request.body.title;
product.price = request.body.price;
product.save(function(err, savedProduct) {
if (err) {
response.status(500).send({error:"Could not save product"})
} else {
response.status(200).send(savedProduct);
}
});
});
app.listen(3000, function () {
console.log("Swag Shop API running on port 3000...");
});
产品.js:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var product = new Schema({
title: String,
price: Number,
likes: {type: Number, default: 0}
});
module.exports = mongoose.model('Product', product);
愿望清单.js:
var mongoose = require('mongoose');
const product = require('./product');
var Schema = mongoose.Schema;
var ObjectId = mongoose.Schema.Types.ObjectId;
var wishList = new Schema ({
title: {type: String, default: "Cool Wish List"},
products: [{type: ObjectId, ref:'Product'}]
});
module.exports = mongoose.model('WishList', wishList);
解决方案
您正在使用Mongoose
包连接到 MongoDB 服务器并执行各种查询。因此,当您这样做时product.save()
,Mongoose
将在数据库中创建一条新记录。
推荐阅读
- javascript - Bootstrap Input Spinner 仅在重新加载页面上显示
- python - 如何在 Java 项目中使用 maven 运行 Python 单元测试?
- c - SDL - 在 C 中更新曲面
- .htaccess - .htaccess > 将所有子文件夹重定向到根目录(忽略斜杠)
- c++ - C++ 读取文件
- amazon-web-services - AWS EKS“0/3 个节点可用:3 Too many pods”错误
- python - 不同长度的 JAX 批处理
- java - 插件对内部模块的依赖
- javascript - 为什么反应组件不捕获 axios 错误
- javascript - 单击其中一个链接后,如何使导航菜单消失?