Route.delete()需要回调函数,但得到了一个[object Object]

斯里拉姆·黑格

我有node-express应用程序,其中有一堆用于登录,注销和注册的路由,以及一个用于检查授权路由的路由,只能通过提供authToken来访问该路由。我将路线移至单独的路线文件,但出现了以上错误。

这是我的用户路线文件:

const express = require('express');
const authenticate = require('./../middleware/authenticate');
const router = express.Router();
const {User} = require('./../models/user');

    router.post('/',(req, res) => {
    var body = _.pick(req.body,['email','password']);
    var user = new User(body);


    user.save().then(() => {
       return user.generateAuthToken()
    }).then((token) => {
        res.header('x-auth', token).send(user);
    }).catch((e) => {
        res.status(400).send(e);
    });
});


router.post('/login',(req, res) => {
    var body = _.pick(req.body, ['email', 'password']);
    User.findByCredentials(body.email, body.password).then((user) => {
        return user.generateAuthToken().then((token) => {
            res.header('x-auth', token).send(user);
        });
    }).catch((e) => {
        res.status(400).send(e);
    });
});

router.delete('/logout',authenticate, (req, res) => {
    req.user.removeToken(req.token).then(() => {
        res.status(200).send();
    },(e) => {
        res.status(400).send(e);
    }) ;
});


router.get('/me',authenticate, (req,res) => {
    res.send(req.user);
});


module.exports = router;

以下是我的主要server.js文件:

const express = require('express');
const _ = require('lodash');
var app = express();
const usersRoutes = require('./routes/users');

app.use(express.json());
app.use('/users', usersRoutes);

var {mongoose} = require('./db/mongoose');
var {User} = require('./models/user');
var {authenticate} = require('./middleware/authenticate');


const port = process.env.PORT || 3000 ;
app.listen(port, () =>  console.log(`Listening on ${port}...`))

我有一个用于用户的模型/架构(猫鼬)文件,因此如果您觉得需要我准备编辑我的问题。谢谢。

蒙托托亚

问题在于,router.delete期望在中间件参数上使用一个函数(就像您在server.js文件app.use(express.json())中使用进行的操作一样),因此它可以像回调一样使用,每当请求到达您的路由时都会被调用。

尝试更改authenticateauthenticate()

似乎在用户路由文件中,您正在导入包含authenticate函数的整个模块,因此,当尝试像函数一样访问它时,会出现错误。您需要像在server.js文件中一样导入它。

更改行const authenticate = require('./../middleware/authenticate');const {authenticate} = require('./../middleware/authenticate');

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

错误:Route.get()需要回调函数,但得到了一个[object String]

错误:Route.get()需要回调函数,但得到了一个[object Undefined] NODE.JS + SQL

Route.all()需要回调函数,但得到一个[object String])=>然后显示404错误

Route.get()需要回调函数,但是得到了[object Object]

错误:Route.post() 需要一个回调函数,但得到了一个 [object Object]

错误:Route.get()需要回调函数,但得到了[object Promise]

错误:Route.post() 需要回调函数,但得到了 [object Promise]

错误:Route.post()需要回调函数,但有一个[object Undefined]

Node.js 错误:Route.post() 需要一个回调函数,但得到了一个 [object Object]

Route.get()需要回调函数,但在修改服务器路由后得到了[object Undefined]

Route.post()需要回调函数,但在使用Passport身份验证时得到了[object Undefined]

获得像 Route.post() 这样的错误需要一个回调函数,但在 express 中得到了一个 [object String]

错误:Route.get()需要一个回调函数,但是尽管module.exports = router,却得到了一个[object Undefined];在那里?

Router.use() 需要回调函数但得到一个 [object Object]

错误连接 MongoDB:错误:Route.get() 需要一个回调函数,但得到一个 [object Undefined]

简单错误:Express 3->4。移动控制器并请求索引“ Route.get()需要回调函数,但有一个[object Undefined]”

尝试构建项目引发:需要回调函数,但是得到了[object Promise]吗?

.get()需要回调函数,但有一个[object Undefined]

findOneAndUpdate,回调必须是一个函数,得到了[object Object],NodeJs,猫鼬错误

Discord.js MongooseError:回调必须是一个函数,得到了[object Object]

Express.js应用程序错误导致Route.post()需要回调函数,但出现[object undefined]错误

.get()需要回调函数,但在路线上有一个[object Undefined]。(匿名函数)为get []

Route.post() 需要一個回調函數,但得到了一個 [object Undefined](即使我已經給出了回調函數)

Route.get()需要回调函数,但得到“对象未定义”

应该是一个组件类,得到了[object Object]

TypeError:_this.props.route.params不是函数...是Object的实例)

React Native Navigator Route Object未定义

我试图提醒“70”和“约翰”,但相反,我收到了一个提醒“[object Object]”

在反应应用程序上工作并继续得到错误预期的`onChange` 侦听器是一个函数,而不是得到一个`object` 类型的值