【发布时间】:2021-09-04 06:07:06
【问题描述】:
我正在使用邮递员测试我的 API。我正在从邮递员发送 get 和 post 请求,但它一直说正在发送,没有错误也没有响应。请告诉我如何调试我的代码。 附言: 我是后端开发新手。
App.js 文件:
const express = require("express");
const app = express();
const morgan = require('morgan');
const mongoose = require('mongoose');
const cors = require('cors');
require('dotenv').config({ path: '.env' });
app.use(cors);
app.options('*', cors());
//Middleware
app.use(express.json());
app.use(morgan('tiny'));
//Routes
const productsRoutes = require('./routers/products');
const categoriesRoutes = require('./routers/categories');
const api = process.env.API_URL;
app.use(`${api}/products`, productsRoutes);
app.use(`${api}/categories`, categoriesRoutes);
//Database
mongoose.connect(process.env.CONNECTION_STRING, { useNewUrlParser: true, useUnifiedTopology: true})
.then(()=>{
console.log('Database connection is ready');
})
.catch((err)=>{
console.log(err);
});
//Server
app.listen(3000, ()=>{
console.log("Server is running on http://localhost:3000");
});
category.js(类别架构):
const mongoose = require('mongoose');
const categorySchema = mongoose.Schema({
name :{
type :String,
required : true
},
icon :{
type : String,
},
color :{
type : String,
}
})
exports.Category = mongoose.model('Category', categorySchema);
categories.js
const {Category} = require('../models/category');
const express = require('express');
const router = express.Router();
router.get('/', async(req, res) =>{
const categoryList = await Category.find();
if(!categoryList){
res.status(500).json({success: false})
}
res.stauts(200).send(categoryList);
})
router.post('/', async(req, res) =>{
const category = new Category({
name: req.body.name,
icon: req.body.icon,
color: req.body.color
});
category = await category.save();
if(!category)
return res.status(404).send('The category cannot be created');
res.send(category);
})
module.exports = router;
邮递员不断发送请求:
【问题讨论】:
-
可以显示服务器日志吗?你看到
Database connection is ready这行了吗?另外,可以在后置控制器的开头添加console.log('post category');吗? -
服务器正在运行,数据库连接就绪
-
已解决:app.js 中这一行的语法错误:app.use(cors);正确:app.use(cors());