首页 > 解决方案 > 使用类似运算符 inito MongoDB 的节点 JS 休息服务

问题描述

我是 Node JS Develop 的新手。我已经使用 Express 和 Mongo DB 开发了一个特定的 REST 服务。现在我需要开发一个休息服务,当我传递一些字母时,会得到一组包含这些字母的项目。我想我可以使用 like 运算符开发 GET Rest 服务。我尝试过使用此代码,但错误:

router.get('/tire/autocomplete/:size', VerifyToken, function(req,res){
var size=req.params.size;
TechInfo.find({ Size: new RegExp(size, 'i') }).toArray(err, techinfos) => {
    if (err) {
        console.log(err);
        return res.status(400).send({ status: 'ko', data: {msg: err.message }});
        console.log(err);
    }
    res.status(200).send({status: 'ok', data: {msg: 'Size tires available', tires :techinfos}});
});
});

这是我的模型架构

var TechInfoSchema = new Schema({

"ID_code" :{type: Number, required: true},
"inches" : {type: Number, required: true},
"Brand" : {type: String, required: true},
"Size" : {type: String, required: true},
"type" : {type: String, required: true}
},{
collection: 'techInfo'
});

var TechInfo = db.model('TechInfo',TechInfoSchema)
module.exports = TechInfo;

当我使用邮递员呼叫我的休息服务时,我收到此错误

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Error</title>
</head>
<body>
    <pre>Cannot GET /api/v1.0/equipment/tires/autocoplete</pre>
</body>

我可以看到一些关于休息服务的例子吗?谢谢

标签: node.jsmongodbexpress

解决方案


为什么要使用 find 将最终结果转换为数组?它已经是一个数组

router.get('/tire/autocomplete', VerifyToken, function(req,res){
var size=req.params.size;
TechInfo.find({ Size: new RegExp(size, 'i') },(err, techinfos) => {
    if (err) {
        console.log(err);
        return res.status(400).send({ status: 'ko', data: {msg: err.message }});
        console.log(err);
    }else{
    res.status(200).send({status: 'ok', data: {msg: 'Size tires available', tires :techinfos}});
    }

});
});

我只是把这个答案作为一个粗略的想法。如果这不能解决它也用你的模式更新帖子(模型)


推荐阅读