我刚尝试使用request-promise
进行异步/等待操作,但遇到了这个错误:
RequestError: Error: no auth mechanism defined
at new RequestError (node_modules/request-promise-core/lib/errors.js:14:15)
at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:87:29)
at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
at self.callback (node_modules/request/request.js:188:22)
at Auth.onRequest (node_modules/request/lib/auth.js:133:18)
at Request.auth (node_modules/request/request.js:1360:14)
at Context.<anonymous> (test/routes.js:37:41)
From previous event:
at Request.plumbing.init (node_modules/request-promise-core/lib/plumbing.js:36:28)
at Request.RP$initInterceptor [as init] (node_modules/request-promise-core/configure/request2.js:41:27)
at new Request (node_modules/request/request.js:130:8)
at request (node_modules/request/index.js:54:10)
at Context.<anonymous> (test/routes.js:37:24)
这是我最近建立的一个API端点,用于在MongoDB中创建新用户。它使用Passport策略提供的基本身份验证,并且我已经使用Postman测试过它可行。但我不确定为什么会出现这个错误。
我的请求代码(使用Mocha):
it("creates a new user", async () => {
const options = {
method: "POST",
uri: `http://localhost:${process.env.PORT}/api/users`,
headers: {
"User-Agent": "Request-Promise",
"Content-Type": "application/json"
},
body: {
email: "test@domain.com",
password: "password",
firstName: "John",
lastName: "Smith"
},
json: true
};
const resp = await request(options).auth(APP_ID, SIGNATURE, false);
expect(resp).to.be.an("object");
});
编辑:我应该还要补充一下,我正在使用node 8.2.1和npm 5.3.0。
APP_ID
和SIGNATURE
被定义为文件顶部的模块常量。我也测试过使用字面量来确保。 - spicypumpkinauth:{}
或auth:{username:undefined,password:undefined}
。必须省略auth
属性。 - Kip