Javascript 如何启动NodeJS post?
我正在尝试使用POST创建一个餐馆的示例API,但在启动API并将其加载到Postman之后,它并没有显示结果 路由器.jsJavascript 如何启动NodeJS post?,javascript,node.js,mongodb,api,mongoose,Javascript,Node.js,Mongodb,Api,Mongoose,我正在尝试使用POST创建一个餐馆的示例API,但在启动API并将其加载到Postman之后,它并没有显示结果 路由器.js const express = require('express'); const restaurantController = require('../Controllers/restaurantData'); const router = express.Router(); router.post('/restaurantFilter',(req, res) =&
const express = require('express');
const restaurantController = require('../Controllers/restaurantData');
const router = express.Router();
router.post('/restaurantFilter',(req, res) => {
restaurantController.getfilter
});
module.exports = router;
app.js
const express = require('express');
const bodyparser = require('body-parser');
const mongoose = require('mongoose');
const apiRouter = require('./Routes/router');
const port = 4005;
const app = express();
app.use(bodyparser.json());
app.use('/api', apiRouter);
mongoose.connect(
'mongodb://127.0.0.1:27017/sample',
{ 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);
});
restaurant.js(控制器)
restaurantData.js(模型)
我想主要是路由器的问题,但我想知道在哪里?所以,分享任何想法。谢谢。此请求处理程序:
router.post('/restaurantFilter',(req, res) => {
restaurantController.getfilter
});
实际上不调用getfilter
函数,因此POST请求不会发送任何内容。您可以通过执行以下任一操作来解决此问题:
router.post('/restaurantFilter', restaurantController.getfilter);
const restaurantController = require('../Controllers/restaurantData');
const restaurantController = require('../Controllers/restaurant.js');
或者这个:
router.post('/restaurantFilter',(req, res) => {
restaurantController.getfilter(req, res);
});
然后,看起来您还必须导出和导入getfilter()
函数的属性。在restaurant.js中,您似乎可以很好地导出它:
exports.getfilter = (req, res) => { ... });
但是,在执行此操作时,似乎没有正确导入控制器:
router.post('/restaurantFilter', restaurantController.getfilter);
const restaurantController = require('../Controllers/restaurantData');
const restaurantController = require('../Controllers/restaurant.js');
当看起来您应该这样做时:
router.post('/restaurantFilter', restaurantController.getfilter);
const restaurantController = require('../Controllers/restaurantData');
const restaurantController = require('../Controllers/restaurant.js');
因此,您正在为控制器分配实际具有getfilter
方法的对象。在router.post()
中,尝试将restaurantController.getfilter
更改为res.send(restaurantController.getfilter)
@hisam-这是不正确的restaurantController.getfilter
是一个函数,需要调用并传递它req
和res
。