【发布时间】:2023-03-07 12:23:01
【问题描述】:
我正在做一个教程,但无法获得与https://youtu.be/qmNPpoVkY2Y?t=1238 部分相同的结果
我可以通过邮递员 POST,但不能 GET。
这是我得到的快照..
服务器/index.js
import express from 'express';
import dbConfig from './config/db';
import middlewareConfig from './config/middlewares';
import { MeetupRoutes } from './modules';
const app = express();
/**
*Database
*/
dbConfig();
/**
*Middlewares
*/
middlewareConfig(app);
app.use('/api', [MeetupRoutes]);
const PORT = process.env.PORT || 3000;
app.listen(PORT, err => {
if (err) {
console.error(err);
}{
console.log('App listen to port: ${PORT}');
}
});
db.js
import mongoose from 'mongoose';
export default () => {
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost/meetupME');
mongoose.connection
.once('open', () => console.log('Mongobd running'))
.on('error', err => console.error(err))
};
middleware.js
import bodyParser from 'body-parser';
import morgan from 'morgan';
export default app => {
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false}));
app.use(morgan('dev'));
};
meetups/controller.js
import Meetup from './model';
export const createMeetup = async (req,res) => {
const { title, description } = req.body;
const newMeetup = new Meetup({ title, description });
try {
return res.status(201).json({ meetup: await newMeetup.save() });
} catch (e) {
return res.status(e.status).json({ error: true, message: 'Error with Meetup' });
}
}
export const getAllMeetups = async (req, res) => {
try {
return res.status(200).json({ meetups: await Meetup.find({} )});
} catch (e) {
return res.status(e.status).json({ error: true, message: 'Error with Meetup' });
}
}
meetup/index.js
import MeetupRoutes from './routes';
export { MeetupRoutes };
meetup/model.js
import mongoose, { Schema } from 'mongoose';
const MeetupSchema = new schema({
title: {
type: String,
required: true
},
description: {
type: String,
required: true
}
});
export default mongoose.model('Meetup', MeetupSchema);
meetup/routers.js
import { Router } from 'express';
import * as MeetupController from './controller'
const routes = new Router();
routes.post('/meetups', MeetupController.createMeetup);
routes.get('/meetups', MeetupController.getAllMeetups);
export default routes;
我尝试检查拼写错误,但由于某种原因,我无法使其正常工作。谢谢!
这里也是从 Postman 导出的请求:
GET /api/meetups HTTP/1.1
Host: localhost:3000
Content-Type: application/x-www-form-urlencoded
cache-control: no-cache
Postman-Token: e912d6ac-d9b6-465d-88e8-4aee65a906fa
title=title1description=This+is+a+descriptionundefined=undefined
【问题讨论】:
-
代码对我来说看起来是正确的。你能从 Postman 导出请求(例如,作为 curl 调用)吗?那里有“代码”按钮。
-
已导出并编辑到帖子底部! :)
-
运气好了吗?这真的很奇怪。我现在唯一可以建议的另一件事是尽可能简化,例如将其缩小到仅具有内联处理程序的路由器,例如
(req, res) => res.status(200).json('ok');..
标签: node.js post get routes postman