最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

ECONNREFUSED 127.0.0.1:3000 at TCPConnectWrap.afterConnect [as oncomplete] errno:'ECONNREFUSED',

IT培训 admin 4浏览 0评论

ECONNREFUSED 127.0.0.1:3000 at TCPConnectWrap.afterConnect [as oncomplete] errno:'ECONNREFUSED',

我正在模拟的(facebook / google)策略上运行一些测试,但是当我逐个运行这些测试时却遇到了问题,但是当我同时运行它们时,它们在第一次测试,应用程序连接后无法正常工作立即失败。

我尝试使用不同的描述运行,但没有任何改变,我使用nodejs和@ passport-next / passport-mocked作为依赖项来帮助我模拟那些策略。

  import chai from 'chai';
import chaiHttp from 'chai-http';
import passport from 'passport';
import '../config/passport';
import { describe, it } from 'mocha';
import server from '../index';

chai.use(chaiHttp);
const should = chai.should();

describe.only('login through facebook', () => {
  it('redirects to facebook', (done) => {
    chai
      .request(server)
      .get('/api/v1/users/auth/facebook')
      .end((_err, res) => {
        res.redirects[0].should.contain('api/v1/users/auth/facebook/callback?__mock_strategy_callback=true');
        done();
      });
  });
  it('redirects to google', (done) => {
    chai
      .request(server)
      .get('/api/v1/users/auth/google')
      .end((_err, res) => {
          console.log(_err);
        // res.redirects[0].should.contain('api/v1/users/auth/google/callback?__mock_strategy_callback=true');
        done();
      });
  });


});

这是我的测试文件

import passport from 'passport';
import config from './auth';


let FacebookStrategy;
let GooglePlusStrategy;
if (process.env.NODE_ENV !== 'test') {
  FacebookStrategy = require('passport-facebook');
  GooglePlusStrategy = require('passport-google-oauth20');
} else {
  FacebookStrategy = require('passport-mocked').Strategy;
  GooglePlusStrategy = require('passport-mocked').OAuth2Strategy;
}

passport.use(new FacebookStrategy({
  name: 'facebook',
  clientID: '2618632188182397',
  clientSecret: 'f8a48d72223691ad05ca936fa20049e9',
  callbackURL: 'http://localhost:3000/api/v1/users/auth/facebook/callback',
  profileFields: ['id', 'displayName', 'photos', 'email']
}, (accessToken, refreshToken, profile, done) => {
  const firstName = profile._json.firstName;
  const lastName = profile._json.last_name;
  const email = profile.emails[0].value;
  const user = { firstName, lastName, email };
  // console.log(profile);
  done(null, user);
}));


passport.use(new GooglePlusStrategy({
  name: 'google',
  clientID: config.google.clientID,
  clientSecret: config.google.clientSecret,
  callbackURL: 'http://localhost:3000/api/v1/users/auth/google/callback'
}, (accessToken, refreshToken, profile, cb) => {
  const user = {
    username: profile.displayName,
    email: profile.emails[0].value,
    isverified: true
  };
  console.log(profile);
  cb(null, user);
}));

passport.serializeUser((user, done) => {
  done(null, user);
});

passport.deserializeUser((user, done) => {
  done(null, user);
});

export default passport;

这是我的护照配置

const server = app.listen(process.env.PORT || 3000, () => {
  // eslint-disable-next-line no-console
  console.log(`Listening on port ${server.address().port}`);
});

这是我的应用程序索引

我希望测试结果的格式为json,但是现在当我在null中运行结果并且出现git错误

Listening on port 3000
  login through facebook
    ✓ redirects to facebook (57ms)
{ Error: connect ECONNREFUSED 127.0.0.1:3000
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 3000,
  response: undefined }
    ✓ redirects to google

我得到的错误

回答如下:

您需要应用程序的[[some

部分来处理回调(即,您需要公开http://localhost:3000/api/v1/users/auth/facebook/callback和http://localhost:3000/api/v1/users/auth/google/callback,并理想地使它们成为)。]]根据错误,Facebook无法达到该点...

ECONNREFUSED 127.0.0.1:3000 at TCPConnectWrap.afterConnect [as oncomplete] errno:'ECONNREFUSED',

我正在模拟的(facebook / google)策略上运行一些测试,但是当我逐个运行这些测试时却遇到了问题,但是当我同时运行它们时,它们在第一次测试,应用程序连接后无法正常工作立即失败。

我尝试使用不同的描述运行,但没有任何改变,我使用nodejs和@ passport-next / passport-mocked作为依赖项来帮助我模拟那些策略。

  import chai from 'chai';
import chaiHttp from 'chai-http';
import passport from 'passport';
import '../config/passport';
import { describe, it } from 'mocha';
import server from '../index';

chai.use(chaiHttp);
const should = chai.should();

describe.only('login through facebook', () => {
  it('redirects to facebook', (done) => {
    chai
      .request(server)
      .get('/api/v1/users/auth/facebook')
      .end((_err, res) => {
        res.redirects[0].should.contain('api/v1/users/auth/facebook/callback?__mock_strategy_callback=true');
        done();
      });
  });
  it('redirects to google', (done) => {
    chai
      .request(server)
      .get('/api/v1/users/auth/google')
      .end((_err, res) => {
          console.log(_err);
        // res.redirects[0].should.contain('api/v1/users/auth/google/callback?__mock_strategy_callback=true');
        done();
      });
  });


});

这是我的测试文件

import passport from 'passport';
import config from './auth';


let FacebookStrategy;
let GooglePlusStrategy;
if (process.env.NODE_ENV !== 'test') {
  FacebookStrategy = require('passport-facebook');
  GooglePlusStrategy = require('passport-google-oauth20');
} else {
  FacebookStrategy = require('passport-mocked').Strategy;
  GooglePlusStrategy = require('passport-mocked').OAuth2Strategy;
}

passport.use(new FacebookStrategy({
  name: 'facebook',
  clientID: '2618632188182397',
  clientSecret: 'f8a48d72223691ad05ca936fa20049e9',
  callbackURL: 'http://localhost:3000/api/v1/users/auth/facebook/callback',
  profileFields: ['id', 'displayName', 'photos', 'email']
}, (accessToken, refreshToken, profile, done) => {
  const firstName = profile._json.firstName;
  const lastName = profile._json.last_name;
  const email = profile.emails[0].value;
  const user = { firstName, lastName, email };
  // console.log(profile);
  done(null, user);
}));


passport.use(new GooglePlusStrategy({
  name: 'google',
  clientID: config.google.clientID,
  clientSecret: config.google.clientSecret,
  callbackURL: 'http://localhost:3000/api/v1/users/auth/google/callback'
}, (accessToken, refreshToken, profile, cb) => {
  const user = {
    username: profile.displayName,
    email: profile.emails[0].value,
    isverified: true
  };
  console.log(profile);
  cb(null, user);
}));

passport.serializeUser((user, done) => {
  done(null, user);
});

passport.deserializeUser((user, done) => {
  done(null, user);
});

export default passport;

这是我的护照配置

const server = app.listen(process.env.PORT || 3000, () => {
  // eslint-disable-next-line no-console
  console.log(`Listening on port ${server.address().port}`);
});

这是我的应用程序索引

我希望测试结果的格式为json,但是现在当我在null中运行结果并且出现git错误

Listening on port 3000
  login through facebook
    ✓ redirects to facebook (57ms)
{ Error: connect ECONNREFUSED 127.0.0.1:3000
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 3000,
  response: undefined }
    ✓ redirects to google

我得到的错误

回答如下:

您需要应用程序的[[some

部分来处理回调(即,您需要公开http://localhost:3000/api/v1/users/auth/facebook/callback和http://localhost:3000/api/v1/users/auth/google/callback,并理想地使它们成为)。]]根据错误,Facebook无法达到该点...
发布评论

评论列表 (0)

  1. 暂无评论