gpt4 book ai didi

jquery - 将 GET 参数传递给 Express+Mongoose Restful API

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:25 24 4
gpt4 key购买 nike

我刚刚开始了解 Node、Express 和 Mongoose。到目前为止很喜欢它,但不知道如何将 MongoDB 过滤从 AJAX 调用传递到 API。

我有一个简单的 jQuery AJAX 请求,如下所示:

$.getJSON('/api/products', {
filter: { status: 'active' } // <-- Want this to get processed by the API
}, function(products){
console.log(products);
});

以下是我的 Express + Mongoose API 的重要部分:

// Define Mongoose Schema
var Schema = mongoose.Schema;

// Product Schema
var ProductSchema = new Schema({
name: { type: 'string', required: false },
price: { type: 'number', required: false },
status: { type: 'string', required: false },
description: { type: 'string', required: false },
});

// Product Model
var ProductModel = mongoose.model('Product', ProductSchema);

// Product Endpoint
app.get('/api/products', function(req, res){
return ProductModel.find(function(error, products){
return res.send(products);
});
});

最佳答案

您应该按原样随您的请求发送编码参数。现在您只需获取它们并将其传递给您的查询:

// Product Endpoint
app.get('/api/products', function(req, res){

var filter = {};
for ( var k in req.query.filter ) {
filter[k] = req.query.filter[k]; // probably want to check in the loop
}
return ProductModel.find(filter, function(error, products){
return res.send(products);
});
});

之所以存在该循环,是因为您可能想检查发送的内容。但我会将其留给您。

还有req.params(如果适合您的口味)。

关于jquery - 将 GET 参数传递给 Express+Mongoose Restful API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22467473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com