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()代码>?