javascript - findOneAndUpdate Mongoose w/PUT REST API

标签 javascript node.js mongodb mongoose

这是我第一次尝试,非常简单,我只想查找具有提供的参数(框:“Box 1”)的所有文档,并找到具有提供的属性的所有文档(供应:“清洁”) )。然后将所有这些文档从“Box 1”框更新为“Box 2”框。结果是所有清洁用品现在都移至 Box 2。因此文档将从 {box: "Box 1", Supplies: "Cleaning"} 转到 {box: "Box 2", Supplies: "Cleaning"}

错误

"Cannot PUT /updatebox/Box%201/Cleaning" //in Postman
"404 Not Found" //in Postman log

架构和模型

var boxSchema = new mongoose.Schema({
    box: String,
    supplies: String
});

var boxModel = mongoose.model('boxModel', boxSchema, 'boxList');

API

app.put('updatebox/:box/:supplies', function (req, res) {
    var boxReq = req.params.box;
    var suppliesReq = req.params.supplies;
    boxModel
        .find({box: boxReq})
        .findOneAndUpdate({supplies: suppliesReq}, {
            $set: {
                box: "Box 2"
            }
        }, {new: true}, function (err, doc) {
            if (err) {
                console.log("Something wrong when updating data!");
            }
            res.json(doc);
        });
})

最佳答案

您在实际路线之前缺少前面的“/”

API 中的这一行

app.put('updatebox/:box/:supplies', function (req, res) {

确实应该是

app.put('/updatebox/:box/:supplies', function (req, res) {

关于javascript - findOneAndUpdate Mongoose w/PUT REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35852625/

相关文章:

javascript - 基于字符串值的数组排序不起作用

node.js - Node,js - Mongoose - 无法保存地理多边形 - CastError : Cast to number failed

javascript - 如何使用 Go 驱动程序或 Golang 在 Mongodb 中插入 javascritpt 函数

javascript - 将 IndexedDB 中的数据拉入数组并通过 ReactJS 输出

javascript - 单击外部以关闭下拉头像菜单

javascript - 消费者和 vendor 的 LTI 合规示例

javascript - 如何对数组应用映射操作来添加属性?

javascript - 学习 javascript,为什么代码不适用于 javascript

javascript - 无法在 Android 中使用 ngCordova 获取推送通知

javascript - node.js 无法在集成测试中上传文件