使用 MERN 應用程式來了解它是如何作業的,但我一直在嘗試顯示我的路線。我沒有收到任何其他錯誤,如果我使用 simple app.get('/'),我可以很好地看到它;似乎我定義的路線由于某種原因沒有被識別。
require('dotenv').config();
const express = require('express');
const cors = require('cors');
const app = express();
const port = process.env.PORT;
const options = {
origin: 'http://localhost:8081'
}
app.use(cors(options));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
const db = require('./models');
db.mongoose
.connect(db.url, {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => {
console.log('Successfully connected.');
})
.catch((error) =>{
console.log(`Connection failed. Error: ${error}`);
process.exit();
}
);
require('./routes/items.routes')(app)
app.listen(port, () => {
console.log(`Listening at localhost:${port}`);
});
const multer = require('multer');
const dir = './public/';
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, dir);
},
filename: (req, file, cb) => {
const fileName = file.originalname.toLowerCase().split(' ').join('-');
cb(null, fileName '-' Date.now());
}
});
var upload = multer({
storage: storage,
fileFilter: (req, file, cb) => {
if (file.mimetype == 'image/png' || file.mimetype == 'image/jpg' || file.mimetype == 'image/jpeg') {
cb(null, true);
} else {
cb(null, false);
return cb(new Error('Invalid file type.'));
}
}
});
module.exports = app => {
const items = require('../controllers/items.controller');
let router = require('express').Router();
router.post('/', upload.single('icon'), items.create);
router.delete('/:id', items.delete);
app.use('/api/items', router);
};
我遵循this和this作為起點。不確定我缺少什么或為什么它無法檢索我的 POST 路由。
uj5u.com熱心網友回復:
您標題中的錯誤:
Cannot GET /api/items
表示它是對 的 GET 請求/api/items。但是,您沒有該路由的 GET 處理程式。您只有使用以下兩行代碼定義的該路由的 POST 處理程式:
router.post('/', upload.single('icon'), items.create);
app.use('/api/items', router);
因此,您顯然需要將該路由上的測驗更改為 POST,而不是 GET,并且 POST 將期待一個包含圖示資料的正文部分。
如果您想確切地查看路由器的內容(用于除錯/故障排除目的),您可以在將路由器宣告為您在路由器上注冊的第一項之后立即添加此項。
router.use((req, res, next) => {
console.log(`In router: ${req.method}:${req.originalUrl}`);
next();
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/343609.html
