Javascript 如何运行API以及如何在API中输入数据?

Javascript 如何运行API以及如何在API中输入数据?,javascript,node.js,mongodb,api,express,Javascript,Node.js,Mongodb,Api,Express,我正在尝试使用NodeJS、ExpressJS和MongoDB制作一个API,用于根据学校数据的位置和费用对其进行过滤和排序 因此,它的主要基础是: const express = require('express'); const bodyparser = require('body-parser'); const mongoose = require('mongoose'); const apiRouter = require('./Routes/router'); const port

我正在尝试使用NodeJS、ExpressJS和MongoDB制作一个API,用于根据学校数据的位置和费用对其进行过滤和排序

因此,它的主要基础是:

const express = require('express');
const bodyparser = require('body-parser');
const mongoose = require('mongoose');

const apiRouter = require('./Routes/router');

const port = 4003;
const app = express();

app.use(bodyparser.json());

app.use('/api', apiRouter);

mongoose.connect(
    'mongodb://127.0.0.1:27017/schooldata',
    { useNewUrlParser: true, useUnifiedTopology: true }
).then(success => {
    console.log('Connected to MongoDB');

    app.listen(port, () => {
        console.log(`Server started at port ${port}`);
    });

}).catch(error => {
    console.log(error);
});
然后我制作了学校数据模型:

const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const schoolSchema = new Schema({
    _id: {
        type: Number,
        required: true
    },
    name: {
        type: String,
        required: true
    },
    city_id: {
        type: Number,
        required: true
    },
    location_id: {
        type: Number,
        required: true
    },
    country_name: {
        type: String,
        required: true
    },
    fees: {
        type: Number,
        required: true
    }
});

module.exports = mongoose.model('schools', schoolSchema, 'school');
然后控制器部分:

const schools = require('../Models/schoolData');

exports.getfilter = (req, res) => {
    const location_id = req.body.location_id;
    const city_id = req.body.city_id;
    const cost = req.body.cost;

    schools.find({
        city_id: city_id,
        location_id: location_id
    }).sort({
        min_fees: cost,
        max_fees: cost
    }).then(result => {
        location_id = result,
        city_id = result,
        min_fees = result,
        max_fees = result
    }).catch(error => {
        message = error;
    })
}
然后我将API路由到:

const express = require('express');
const schoolController = require('../Controllers/schoolData.js');

const router = express.Router();

router.get('/schoolFilter',schoolController.getfilter);

module.exports = router;
所以,如果我启动NPM并在postman中链接它,即链接('http://localhost:4003/api/schoolFilter”),没有显示响应。另外,如何根据用户输入数据。例如,如果用户选择的位置id为:孟买,min_费用为:40000,则必须显示过滤和排序。
所以,如果可能的话,发送任何想法。。。谢谢。

您从未告诉它发送响应-您需要调用响应方法,如
send
render
sendFile
json
等。 至于排序和过滤,看起来你已经在做了。。。 此外,快速代码优化提示:

  • 改变
  • schools.find({
    城市标识:城市标识,
    位置\标识:位置\标识
    })
    
    干洗店

    schools.find({
    城市标识,
    位置标识
    })
    
    使用EcmaScript 6技术 2) 使用
    camelCase
    ,即每个单词的第一个字母大写,以提高可读性。 小结:调用响应方法并尝试优化代码