我的app.js是這樣的:
const express = require('express') 。
const connectDB = require('./config/db') 。
var cors = require('cors') 。
const fruits = require('./routes/api/fruits') 。
const app = express()。
connectDB()。
app.use(cors({origin: true, credentails: true})。
app.use(express.json({extended: false})。
app.get('/', (req, res) =>/span> res. send('Hello World') )。
app.use('/api/fruits', fruits) 。
const port = process.env.PORT || 8082;
app.listen(port, () => console. log(`Server running on port ${port}`) )。
我的fruit.js在rouse/api/fruits.js中
。const express = require('express') 。
const router = express.Router()。
const Fruit = require('././models/Fruit') 。
router.get('/test', (req, res) => /span> {
res.send('水果路由測驗!')。
console.log('Route found') 。
});
router.get('/', (req, res) =>/span> {
Fruit.find()
.then(fruits => res.json(fruits)
.catch(err => res. status(404).json({nofruitsfound : 'No Fruit Found'})。
});
router.get('/:id', (req, res) => {
Fruit.findById(req.params.id)
.then(fruit => res.json(fruit)
.catch(err => res. status(404).json({nofruitsfound : 'No Fruit Found'})。
});
router.post('/', (req, res) =>/span> {
Fruit.create(req.body)
.then(span class="hljs-params">fruit => res.json({ mgs。'Fruit added sucessfully'})
.catch(err => res. status(400).json({ error: 'Unable to add this fruit'})。
});
router.put(':/id', (req, res) => {
Fruit.findByIdAndUpdate(req.params.id, req.body)
.then(fruit => res.json({ mgs。'Uped successfully'})
.catch(err => res. status(400).json({ error: 'Unable to update the Database'})。
});
router.delete('/:id', (req, res) => {
Fruit.findByIdAndDelete(req. params.id, req.body)
.then(fruit => res.json({ mgs: 'Fruit deleted sucessfully'})
.catch(err => res. status(404).json({ error。'Unable to find fruit by Id and delete'})。
});
module.exports = router;
http://localhost:8082/,得到 "Hello World"
。http://localhost:8082/api/fruit/test 得到:
<html lang="en"/span>>
<head>>
<meta charset="utf-8"/span>>
<title>Error</title>/span>
</head>
<body>
<pre>Cannot GET /test</pre>
</body>
</html>/span>
我也試過http://localhost:8082/api/fruits/test,但POST的http://localhost:8082/api/fruits/卻得到{"錯誤": "無法添加此水果"}
postman request for POST http://localhost:8082/api/fruits/
uj5u.com熱心網友回復:
你沒有定義/test或/api/test。/api/fruit/test將是最接近你的帶有:id引數的端點。
請注意你有一個.字符,你的Express應用程式正在消費你的/api/fruit路由。它說/api/fruit.
uj5u.com熱心網友回復:
基于這一行 app.use('/api/fruitits.', fruits); 你已經為fruits.js檔案中的端點/路由定義了一個基本路徑。
http://localhost:8082/api/fruits/test - 將獲得/test路由
http://localhost:8082/api/fruits - 將得到在 fruits.js 中定義的所有水果
http://localhost:8082/api/fruits - 與POST請求一起使用,你可以創建一個新的水果。
你的基本路徑加上主機是這樣的。http://localhost:8082/api/fruits
看起來你是Express.js的新手,所以我打算補充一下:
app.use.com
app.use(express.json({extended: false})); - 這一行告訴express只處理JSON格式的請求體。因此,在Postman或任何其他你使用的HTTP客戶端中,確保你的POST請求的主體是JSON。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/310207.html
標籤:
