[英]nodejs express cannot get the url and data from node server
编写简单的应用程序从 nodejs 服务器获取数据。
但它似乎没有在浏览器以及 POSTMAN 中获取文件。 我曾多次尝试检查网址,但无济于事。
这是我的文件:
应用程序.js
const express = require('express');
const bodyParser = require('body-parser');
const router = require('./Routes/routes');
const hostname = "localhost";
const port = "8055";
const app = express();
app.use(bodyParser.json());
// CORS
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods','GET,POST,PUT,PATCH,DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
next();
});
app.use('/', router);
app.listen(port,hostname, () => {
console.log('Server is running on http://${hostname}:${port}');
})
路由.js
const express = require('express')
var CityListController = require('../Controllers/City')
var RestaurantCityController = require('../Controllers/Restaurants')
var MenuController = require('../Controllers/Menu')
const router = express.Router();
router.get('/getCityList',CityListController.getCityList);
router.get('/getRestaurantsByCity/:cityname', RestaurantCityController.getRestaurantsByCity);
router.get('/getMenu', MenuController.getMenu);
module.exports = router;
菜单.js
const mealtypes = require('../Models/menu.json');
exports.getMenu = (req, res) => {
const resultname = mealtypes.map(items => items.name)
res.status(200).json({
message: "widgets data fetched successfully",
name : resultname
})
}
menu.json是这样的
[
{
"_id": "1",
"name": "Breakfast",
"content": "Start your day with exclusive breakfast options",
"image": "assets/breakfast.png"
},
{
"_id": "2",
"name": "Lunch",
"content": "Start your day with exclusive breakfast options",
"image": "assets/lunch.png"
}
]
错误是无法获取 /getMenu
不确定错误在哪里,因为它是一条简单的路线..不确定缺少什么。 谢谢
尝试访问http://localhost:8055
导致错误Cannot GET /
生成它是因为根目录http://localhost:8055/
没有使用路径/
在express中的路由。
这是http://localhost:8055/getMenu
的路线,效果很好。
测试代码
const express = require('express');
const getMenu = (req,res) => res.status(200).json({ test_data: "test_data"});
const router = express.Router();
router.get('/getMenu', getMenu);
const hostname = "localhost";
const port = "8055";
const app = express();
app.use('/', router);
app.listen(port,hostname, () => {
console.log(`Server is running on http://${hostname}:${port}`);
})
您的代码应该适用于 http://localhost:8055/getMenu。 我复制了您的代码并为我工作链接到 repo 。
{
"message": "widgets data fetched successfully",
"name": [
"Breakfast",
"Lunch"
]
}
似乎出现了技术错误。
现在工作正常。 我刚刚重新启动了 nodemon app.js。
它现在正在工作。 一直在尝试修复 url。
谢谢大家的帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.