Javascript 如何运行API以及如何在API中输入数据?
我正在尝试使用NodeJS、ExpressJS和MongoDB制作一个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
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
,即每个单词的第一个字母大写,以提高可读性。
小结:调用响应方法并尝试优化代码