【问题标题】:Postman 401 Unauthorized | Cannot GET邮递员 401 未经授权 |不能获取
【发布时间】:2023-03-07 12:23:01
【问题描述】:

我正在做一个教程,但无法获得与https://youtu.be/qmNPpoVkY2Y?t=1238 部分相同的结果

我可以通过邮递员 POST,但不能 GET。

这是我得到的快照..

https://imgur.com/a/PHHXHQO

服务器/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


【解决方案1】:

您是否尝试在 Postman 上将 x-www-form-urlencoded 更改为 raw? 还要选择类型 application/json

【讨论】:

  • 是,但没有变化。
【解决方案2】:

尝试使用卷曲

curl -X GET your_usl?param=whatever

【讨论】:

  • 我也未授权
  • 添加 header 以在 curl 中添加 access_token ` curl -H "Accept: application/json" -H "Content-Type: application/json" "access_token: your_token" `
  • curl -H "Accept: application/json" -H "Content-Type: application/json" "access_token: localhost:3000/api/meetups" curl: (3) 端口号以' '结尾
  • 如果您没有任何 access_token,请在标头中不要添加此公共 api,然后您不必放置 access_token,但我建议您保护您的 api 始终添加带有这个的access_token。然后检查!
猜你喜欢
  • 2018-07-01
  • 1970-01-01
  • 2021-01-24
  • 2021-03-19
  • 2018-03-30
  • 2020-09-17
  • 2011-04-14
  • 1970-01-01
  • 2019-11-09
相关资源
最近更新 更多