node.js - 在控制器中使用 passport.js
问题描述
我正在使用 Postman 来测试我的 API。当我将函数放入时controllers
,我没有错误并且我的服务器运行但我在 Postman 中收到 404 错误。但是,当我将函数放入routes
创建的帖子中时,我在 Postman 中得到了正确的响应。
注意:我使用 Passport 对 API 进行身份验证的每个函数似乎都是这种情况。我看过其他与护照有同样问题的问题,但我仍然对如何解决它感到困惑。
如何将功能放入“控制器”并使其正常工作?
路线/post.js
router.post("/create",
passport.authenticate("jwt", { session: false }),
(req, res) => {
const author = req.user.user_name
const post = req.body
const { errors, isValid } = validatePostInput(post)
if (!isValid) {
return res.status(400).json(errors)
}
post.author = author
const newPost = new Post(post)
newPost.save()
.then(doc => res.json(doc))
.catch(err => console.log({create: "Error creating new post."}))
})
控制器/post.js
const Post = require('../models/Post')
const validatePostInput = require('../validation/post')
const passport = require('passport')
exports.create =
passport.authenticate("jwt", { session: false }),
(req, res) => {
const author = req.user.user_name
const post = req.body
const { errors, isValid } = validatePostInput(post)
if (!isValid) {
return res.status(400).json(errors)
}
post.author = author
const newPost = new Post(post)
newPost.save()
.then(doc => res.json(doc))
.catch(err => console.log({create: "Error creating new post."}))
}
const {create} = require('../controllers/posts')
router.post("/create", create)
解决方案
推荐阅读
- vuejs2 - Vue Draggable to and from
- amazon-web-services - 如何通过java sdk获取附加到aws ec2实例的当前卷大小
- entity-framework-core - Entity Framework Core:全局查询过滤器在数据更改后无法正确过滤
- ruby-on-rails - 错误 :: 在 Windows 机器上安装 Rails
- c - 为什么我的函数会改变输入参数的值?
- python - Bokeh Columnsourcedata 查找最小值和最大值
- python - 带有国家/地区的 Django 电话号码字段
- ruby-on-rails - ROR:Puma 网络服务器一次不会处理多个请求
- html - iOS Gmail 应用程序 html 模板空白换行不起作用
- angular - ng-packagr 函数调用问题