Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ";“字符串”;参数必须是string、Buffer或ArrayBuffer类型之一。接收类型未定义:基本身份验证_Javascript_Node.js_Express_Basic Authentication - Fatal编程技术网

Javascript ";“字符串”;参数必须是string、Buffer或ArrayBuffer类型之一。接收类型未定义:基本身份验证

Javascript ";“字符串”;参数必须是string、Buffer或ArrayBuffer类型之一。接收类型未定义:基本身份验证,javascript,node.js,express,basic-authentication,Javascript,Node.js,Express,Basic Authentication,我在middleware.js const config = require('config'); const basicAuth = require('express-basic-auth'); const express = require ('express'); const app = express(); const token = config.get('restServerToken'); app.use(basicAuth({ authorizer: myAuthorizer

我在
middleware.js

const config = require('config');
const basicAuth = require('express-basic-auth');
const express = require ('express');
const app = express();
const token = config.get('restServerToken');


app.use(basicAuth({ authorizer: myAuthorizer }))

function myAuthorizer(username) {
    const userMatches = basicAuth.safeCompare(username, [token])

    return userMatches
}

module.exports.myAuthorizer = myAuthorizer;
当我试图通过调用
server.js
中的方法时

const middleware = require('./middleware/middleware')
middleware.myAuthorizer();
我得到的错误是:“string”参数必须是string、Buffer或ArrayBuffer.Received类型undefined”

当我在同一模块中使用此身份验证时,一切都正常。
显然,我在模块导出过程中做错了什么,有人能指出我做错了什么吗?

middleware.myAuthorizer()
您没有为
basicAuth.safeCompare(username,[token])
传递用户名。处理POST请求时,该用户名应由用户发送。如何将其自身传递给
中间件.myAuthorizer()