Javascript 为什么everyauth与';未定义不是函数';?
我的代码如下Javascript 为什么everyauth与';未定义不是函数';?,javascript,node.js,twitter,everyauth,Javascript,Node.js,Twitter,Everyauth,我的代码如下 var express = require('express'), everyauth = require('everyauth'), util = require('util'), Promise = everyauth.Promise, users = require('./users'); everyauth.twitter .consumerKey('') .consumerSecret('') .findOrCreateUser(func
var express = require('express'),
everyauth = require('everyauth'),
util = require('util'),
Promise = everyauth.Promise,
users = require('./users');
everyauth.twitter
.consumerKey('')
.consumerSecret('')
.findOrCreateUser(function(session, accessToken, accessTokenSecret, twitterUserData) {
console.log('pre promise');
var promise = new Promise();
users.findOrCreateByTwitterData(twitterUserData, promise);
return promise;
})
.redirectPath('/');
pre promise
/.../node_modules/everyauth/lib/modules/everymodule.js:348
throw err;
^
TypeError: undefined is not a function
at Object._findOrCreateUser ( .../test.js:12:19)
at Object.exec ( .../node_modules/everyauth/lib/step.js:47:21)
at .../node_modules/everyauth/lib/stepSequence.js:26:38
at [object Object].fulfill ( .../node_modules/everyauth/lib/promise.js:42:25)
at .../node_modules/everyauth/lib/stepSequence.js:29:23
at [object Object].fulfill ( .../node_modules/everyauth/lib/promise.js:42:25)
at .../node_modules/everyauth/lib/modules/twitter.js:16:15
at passBackControl ( .../node_modules/everyauth/node_modules/oauth/lib/oauth.js:359:11)
at IncomingMessage.<anonymous> ( .../node_modules/everyauth/node_modules/oauth/lib/oauth.js:378:9)
at IncomingMessage.emit (events.js:88:20)
它打印“预承诺”,然后崩溃如下
var express = require('express'),
everyauth = require('everyauth'),
util = require('util'),
Promise = everyauth.Promise,
users = require('./users');
everyauth.twitter
.consumerKey('')
.consumerSecret('')
.findOrCreateUser(function(session, accessToken, accessTokenSecret, twitterUserData) {
console.log('pre promise');
var promise = new Promise();
users.findOrCreateByTwitterData(twitterUserData, promise);
return promise;
})
.redirectPath('/');
pre promise
/.../node_modules/everyauth/lib/modules/everymodule.js:348
throw err;
^
TypeError: undefined is not a function
at Object._findOrCreateUser ( .../test.js:12:19)
at Object.exec ( .../node_modules/everyauth/lib/step.js:47:21)
at .../node_modules/everyauth/lib/stepSequence.js:26:38
at [object Object].fulfill ( .../node_modules/everyauth/lib/promise.js:42:25)
at .../node_modules/everyauth/lib/stepSequence.js:29:23
at [object Object].fulfill ( .../node_modules/everyauth/lib/promise.js:42:25)
at .../node_modules/everyauth/lib/modules/twitter.js:16:15
at passBackControl ( .../node_modules/everyauth/node_modules/oauth/lib/oauth.js:359:11)
at IncomingMessage.<anonymous> ( .../node_modules/everyauth/node_modules/oauth/lib/oauth.js:378:9)
at IncomingMessage.emit (events.js:88:20)
我对everyauth 0.2.32也有同样的问题。 看起来everyauth.Promise未被导出,当您尝试实例化“未定义”类时,应用程序崩溃
您可以检查(Promise==“undefined”)在everyauth的最新版本中,是否应使用以下语法:
.findOrCreateUser(function(session, accessToken, accessTokenSecret, twitterUserData) {
var promise = this.Promise();
users.findOrCreateByTwitterData(twitterUserData, promise);
return promise;
})
用户
文件中有什么?您可能需要调查Passport()。它是everyauth的灵活替代品,everyauth不使用承诺,因此可能更容易在应用程序中调试。我是开发者,有任何问题都可以问我。