日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

node.js - 用node做微信開發(fā)后臺,獲取access_token報(bào)錯(cuò)

瀏覽:255日期:2022-06-26 11:43:21

問題描述

按照網(wǎng)上教程寫的,但是貌似坑比較多,新手不知道哪里出錯(cuò)了,只知道是給一個(gè)沒有定義的東西掛在屬性什么什么的,下面貼出代碼,如果不全,我繼續(xù)貼。報(bào)錯(cuò):node.js - 用node做微信開發(fā)后臺,獲取access_token報(bào)錯(cuò)

這是目錄結(jié)構(gòu):

node.js - 用node做微信開發(fā)后臺,獲取access_token報(bào)錯(cuò)

下面是g.js

’use strict’var sha1 = require(’sha1’);var Promise = require(’bluebird’);var request = Promise.promisify(require(’request’));var prefix = ’https://api.weixin.qq.com/cgi-bin/’;var api = { accessToken:prefix+’token?grant_type=client_credential’}function Wechat(opts) { var that = this; this.appID = opts.appID; this.appSecret = opts.appSecret; this.getAccessToken = opts.getAccessToken; this.saveAccessToken = opts.saveAccessToken; this.getAccessToken() .then(function (data) {try { data = JOSN.parse(data);}catch(e) { return that.updateAccessToken();}if (that.isValidAccessToken(data)) { Promise.resolve(data);}else { return that.updateAccessToken();} }) .then(function (data) {that.access_token = data.access_token;that.expires_in = data.expires_in;that.saveAccessToken(data); })}Wechat.prototype.isValidAccessToken = function (data) { if (!data || !data.access_token || !data.expires_in) {return false; } var access_token = data.access_token; var expires_in = data.expires_in; var now = (new Date().getTime()) if (now < expires_in) {return true; }else {return false; }}Wechat.prototype.updateAccessToken = function () { var appID = this.appID; var appSecret = this.appSecret; var url = api.accessToken + ’&appid=’ + appID + ’&secret=’ + appSecret; return new Promise(function (resolve, reject) {request({url: url, json: true}).then(function (response) { var data = response[1]; var now = (new Date().getTime()); var expires_in = now + (data.expires_in - 20) * 1000; data.expires_in = expires_in; resolve(data);}) })}module.exports = function (opts) { var wechat = new Wechat(opts); return function *(next) {console.log(this.query)var token = opts.token;var signature = this.query.signature;var nonce = this.query.nonce;var timestamp = this.query.timestamp;var echostr = this.query.echostr;var str = [token, timestamp, nonce].sort().join(’’);var sha = sha1(str);if (sha === signature) { this.body = echostr + ’’;}else { this.body = ’wrong’;} }}

util.js:

’use strict’ var fs = require(’fs’); var Promise = require(’bluebird’); exports.readFileAsync = function (fpath, encoding) {return new Promise(function (resolve, reject) { fs.readFile(fpath, encoding, function (err, content) {if (err) reject(err);else resolve(content); })}) } exports.writeFileAsync = function (fpath, content) {return new Promise(function (resolve, reject) { fs.writeFile(fpath, content, function (err) {if (err) reject(err);else resolve(); })}) }

app.js:

’use strict’var Koa = require(’koa’);var path = require(’path’);var util = require(’./libs/util’);var wechat = require(’./wechat/g’);var wechat_file = path.join(__dirname,’./config/wechat.txt’);var config = { wechat: {appID: ’wxf959acc9ef3df3df’,appSecret: ’a5eaa93a1f0b75e692c0fb88f8ecdd37’,token: ’wuwei’,getAccessToken: function () { return util.readFileAsync(wechat_file);},saveAccessToken: function (data) { data = JSON.stringify(data); return util.writeFileAsync(wechat_file, data);} }}var app = new Koa();app.use(wechat(config.wechat))app.listen(80);console.log(’listening:80’);

response:

E:慕課網(wǎng)7天搞定Node.js微信公眾號開發(fā)wechat>node applistening:80data----- IncomingMessage { _readableState: ReadableState { objectMode: false, highWaterMark: 16384, buffer: [], length: 0, pipes: null, pipesCount: 0, flowing: true, ended: true, endEmitted: true, reading: false, sync: true, needReadable: false, emittedReadable: false, readableListening: false, resumeScheduled: false, defaultEncoding: ’utf8’, ranOut: false, awaitDrain: 0, readingMore: false, decoder: null, encoding: null }, readable: false, domain: null, _events: { end: [ [Function: responseOnEnd], [Function], [Function], [Function] ], close: [ [Function], [Function] ], data: [Function], error: [Function] }, _eventsCount: 4, _maxListeners: undefined, socket: TLSSocket { _tlsOptions: { pipe: null,secureContext: [Object],isServer: false,requestCert: true,rejectUnauthorized: true,session: undefined,NPNProtocols: undefined,requestOCSP: undefined }, _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, _SNICallback: null, servername: null, npnProtocol: undefined, authorized: true, authorizationError: null, encrypted: true, _events: { close: [Object],end: [Object],finish: [Function: onSocketFinish],_socketEnd: [Function: onSocketEnd],secure: [Function],free: [Function: onFree],agentRemove: [Function: onRemove],drain: [Function: ondrain],error: [Function: socketErrorListener] }, _eventsCount: 9, _connecting: false, _hadError: false, _handle: null, _parent: null, _host: ’api.weixin.qq.com’, _readableState: ReadableState {objectMode: false,highWaterMark: 16384,buffer: [],length: 0,pipes: null,pipesCount: 0,flowing: true,ended: false,endEmitted: false,reading: true,sync: false,needReadable: true,emittedReadable: false,readableListening: false,resumeScheduled: false,defaultEncoding: ’utf8’,ranOut: false,awaitDrain: 0,readingMore: false,decoder: null,encoding: null }, readable: false, domain: null, _maxListeners: undefined, _writableState: WritableState {objectMode: false,highWaterMark: 16384,needDrain: false,ending: true,ended: true,finished: true,decodeStrings: false,defaultEncoding: ’utf8’,length: 0,writing: false,corked: 0,sync: false,bufferProcessing: false,onwrite: [Function],writecb: null,writelen: 0,bufferedRequest: null,lastBufferedRequest: null,pendingcb: 0,prefinished: true,errorEmitted: false,bufferedRequestCount: 0,corkedRequestsFree: [Object] }, writable: false, allowHalfOpen: false, destroyed: true, bytesRead: 319, _bytesDispatched: 195, _sockname: null, _pendingData: null, _pendingEncoding: ’’, server: undefined, _server: null, ssl: null, _requestCert: true, _rejectUnauthorized: true, parser: null, _httpMessage: ClientRequest {domain: null,_events: [Object],_eventsCount: 4,_maxListeners: undefined,output: [],outputEncodings: [],outputCallbacks: [],outputSize: 0,writable: true,_last: true,chunkedEncoding: false,shouldKeepAlive: false,useChunkedEncodingByDefault: false,sendDate: false,_removedHeader: {},_contentLength: 0,_hasBody: true,_trailer: ’’,finished: true,_headerSent: true,socket: [Circular],connection: [Circular],_header: ’GET /cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37 HTTP/1.1rnhost: api.weixin.qq.comrnaccept: application/jsonrnCnnection: closernrn’,_headers: [Object],_headerNames: [Object],_onPendingData: null,agent: [Object],socketPath: undefined,method: ’GET’,path: ’/cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37’,parser: null,res: [Circular] }, read: [Function], _consuming: true, _idleNext: null, _idlePrev: null, _idleTimeout: -1 }, connection: TLSSocket { _tlsOptions: { pipe: null,secureContext: [Object],isServer: false,requestCert: true,rejectUnauthorized: true,session: undefined,NPNProtocols: undefined,requestOCSP: undefined }, _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, _SNICallback: null, servername: null, npnProtocol: undefined, authorized: true, authorizationError: null, encrypted: true, _events: { close: [Object],end: [Object],finish: [Function: onSocketFinish],_socketEnd: [Function: onSocketEnd],secure: [Function],free: [Function: onFree],agentRemove: [Function: onRemove],drain: [Function: ondrain],error: [Function: socketErrorListener] }, _eventsCount: 9, _connecting: false, _hadError: false, _handle: null, _parent: null, _host: ’api.weixin.qq.com’, _readableState: ReadableState {objectMode: false,highWaterMark: 16384,buffer: [],length: 0,pipes: null,pipesCount: 0,flowing: true,ended: false,endEmitted: false,reading: true,sync: false,needReadable: true,emittedReadable: false,readableListening: false,resumeScheduled: false,defaultEncoding: ’utf8’,ranOut: false,awaitDrain: 0,readingMore: false,decoder: null,encoding: null }, readable: false, domain: null, _maxListeners: undefined, _writableState: WritableState {objectMode: false,highWaterMark: 16384,needDrain: false,ending: true,ended: true,finished: true,decodeStrings: false,defaultEncoding: ’utf8’,length: 0,writing: false,corked: 0,sync: false,bufferProcessing: false,onwrite: [Function],writecb: null,writelen: 0,bufferedRequest: null,lastBufferedRequest: null,pendingcb: 0,prefinished: true,errorEmitted: false,bufferedRequestCount: 0,corkedRequestsFree: [Object] }, writable: false, allowHalfOpen: false, destroyed: true, bytesRead: 319, _bytesDispatched: 195, _sockname: null, _pendingData: null, _pendingEncoding: ’’, server: undefined, _server: null, ssl: null, _requestCert: true, _rejectUnauthorized: true, parser: null, _httpMessage: ClientRequest {domain: null,_events: [Object],_eventsCount: 4,_maxListeners: undefined,output: [],outputEncodings: [],outputCallbacks: [],outputSize: 0,writable: true,_last: true,chunkedEncoding: false,shouldKeepAlive: false,useChunkedEncodingByDefault: false,sendDate: false,_removedHeader: {},_contentLength: 0,_hasBody: true,_trailer: ’’,finished: true,_headerSent: true,socket: [Circular],connection: [Circular],_header: ’GET /cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37 HTTP/1.1rnhost: api.weixin.qq.comrnaccept: application/jsonrnCnnection: closernrn’,_headers: [Object],_headerNames: [Object],_onPendingData: null,agent: [Object],socketPath: undefined,method: ’GET’,path: ’/cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37’,parser: null,res: [Circular] }, read: [Function], _consuming: true, _idleNext: null, _idlePrev: null, _idleTimeout: -1 }, httpVersionMajor: 1, httpVersionMinor: 1, httpVersion: ’1.1’, complete: true, headers: { connection: ’close’, ’content-type’: ’application/json; encoding=utf-8’, date: ’Thu, 20 Oct 2016 09:40:53 GMT’, ’content-length’: ’175’ }, rawHeaders: [ ’Connection’, ’close’, ’Content-Type’, ’application/json; encoding=utf-8’, ’Date’, ’Thu, 20 Oct 2016 09:40:53 GMT’, ’Content-Length’, ’175’ ], trailers: {}, rawTrailers: [], upgrade: false, url: ’’, method: null, statusCode: 200, statusMessage: ’OK’, client: TLSSocket { _tlsOptions: { pipe: null,secureContext: [Object],isServer: false,requestCert: true,rejectUnauthorized: true,session: undefined,NPNProtocols: undefined,requestOCSP: undefined }, _secureEstablished: true, _securePending: false, _newSessionPending: false, _controlReleased: true, _SNICallback: null, servername: null, npnProtocol: undefined, authorized: true, authorizationError: null, encrypted: true, _events: { close: [Object],end: [Object],finish: [Function: onSocketFinish],_socketEnd: [Function: onSocketEnd],secure: [Function],free: [Function: onFree],agentRemove: [Function: onRemove],drain: [Function: ondrain],error: [Function: socketErrorListener] }, _eventsCount: 9, _connecting: false, _hadError: false, _handle: null, _parent: null, _host: ’api.weixin.qq.com’, _readableState: ReadableState {objectMode: false,highWaterMark: 16384,buffer: [],length: 0,pipes: null,pipesCount: 0,flowing: true,ended: false,endEmitted: false,reading: true,sync: false,needReadable: true,emittedReadable: false,readableListening: false,resumeScheduled: false,defaultEncoding: ’utf8’,ranOut: false,awaitDrain: 0,readingMore: false,decoder: null,encoding: null }, readable: false, domain: null, _maxListeners: undefined, _writableState: WritableState {objectMode: false,highWaterMark: 16384,needDrain: false,ending: true,ended: true,finished: true,decodeStrings: false,defaultEncoding: ’utf8’,length: 0,writing: false,corked: 0,sync: false,bufferProcessing: false,onwrite: [Function],writecb: null,writelen: 0,bufferedRequest: null,lastBufferedRequest: null,pendingcb: 0,prefinished: true,errorEmitted: false,bufferedRequestCount: 0,corkedRequestsFree: [Object] }, writable: false, allowHalfOpen: false, destroyed: true, bytesRead: 319, _bytesDispatched: 195, _sockname: null, _pendingData: null, _pendingEncoding: ’’, server: undefined, _server: null, ssl: null, _requestCert: true, _rejectUnauthorized: true, parser: null, _httpMessage: ClientRequest {domain: null,_events: [Object],_eventsCount: 4,_maxListeners: undefined,output: [],outputEncodings: [],outputCallbacks: [],outputSize: 0,writable: true,_last: true,chunkedEncoding: false,shouldKeepAlive: false,useChunkedEncodingByDefault: false,sendDate: false,_removedHeader: {},_contentLength: 0,_hasBody: true,_trailer: ’’,finished: true,_headerSent: true,socket: [Circular],connection: [Circular],_header: ’GET /cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37 HTTP/1.1rnhost: api.weixin.qq.comrnaccept: application/jsonrnCnnection: closernrn’,_headers: [Object],_headerNames: [Object],_onPendingData: null,agent: [Object],socketPath: undefined,method: ’GET’,path: ’/cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37’,parser: null,res: [Circular] }, read: [Function], _consuming: true, _idleNext: null, _idlePrev: null, _idleTimeout: -1 }, _consuming: true, _dumped: false, req: ClientRequest { domain: null, _events: { socket: [Object],response: [Function: bound ],error: [Function: bound ],drain: [Function] }, _eventsCount: 4, _maxListeners: undefined, output: [], outputEncodings: [], outputCallbacks: [], outputSize: 0, writable: true, _last: true, chunkedEncoding: false, shouldKeepAlive: false, useChunkedEncodingByDefault: false, sendDate: false, _removedHeader: {}, _contentLength: 0, _hasBody: true, _trailer: ’’, finished: true, _headerSent: true, socket: TLSSocket {_tlsOptions: [Object],_secureEstablished: true,_securePending: false,_newSessionPending: false,_controlReleased: true,_SNICallback: null,servername: null,npnProtocol: undefined,authorized: true,authorizationError: null,encrypted: true,_events: [Object],_eventsCount: 9,_connecting: false,_hadError: false,_handle: null,_parent: null,_host: ’api.weixin.qq.com’,_readableState: [Object],readable: false,domain: null,_maxListeners: undefined,_writableState: [Object],writable: false,allowHalfOpen: false,destroyed: true,bytesRead: 319,_bytesDispatched: 195,_sockname: null,_pendingData: null,_pendingEncoding: ’’,server: undefined,_server: null,ssl: null,_requestCert: true,_rejectUnauthorized: true,parser: null,_httpMessage: [Circular],read: [Function],_consuming: true,_idleNext: null,_idlePrev: null,_idleTimeout: -1 }, connection: TLSSocket {_tlsOptions: [Object],_secureEstablished: true,_securePending: false,_newSessionPending: false,_controlReleased: true,_SNICallback: null,servername: null,npnProtocol: undefined,authorized: true,authorizationError: null,encrypted: true,_events: [Object],_eventsCount: 9,_connecting: false,_hadError: false,_handle: null,_parent: null,_host: ’api.weixin.qq.com’,_readableState: [Object],readable: false,domain: null,_maxListeners: undefined,_writableState: [Object],writable: false,allowHalfOpen: false,destroyed: true,bytesRead: 319,_bytesDispatched: 195,_sockname: null,_pendingData: null,_pendingEncoding: ’’,server: undefined,_server: null,ssl: null,_requestCert: true,_rejectUnauthorized: true,parser: null,_httpMessage: [Circular],read: [Function],_consuming: true,_idleNext: null,_idlePrev: null,_idleTimeout: -1 }, _header: ’GET /cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37 HTTP/1.1rnhost: api.weixin.qq.comrnaccept: application/jsonrnConnction: closernrn’, _headers: { host: ’api.weixin.qq.com’, accept: ’application/json’ }, _headerNames: { host: ’host’, accept: ’accept’ }, _onPendingData: null, agent: Agent {domain: null,_events: [Object],_eventsCount: 1,_maxListeners: undefined,defaultPort: 443,protocol: ’https:’,options: [Object],requests: {},sockets: [Object],freeSockets: {},keepAliveMsecs: 1000,keepAlive: false,maxSockets: Infinity,maxFreeSockets: 256,maxCachedSessions: 100,_sessionCache: [Object] }, socketPath: undefined, method: ’GET’, path: ’/cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37’, parser: null, res: [Circular] }, request: Request { domain: null, _events: { error: [Function: bound ],complete: [Function: bound ],pipe: [Function],data: [Function],end: [Function] }, _eventsCount: 5, _maxListeners: undefined, callback: [Function], readable: true, writable: true, _qs: Querystring {request: [Circular],lib: [Object],useQuerystring: undefined,parseOptions: {},stringifyOptions: {} }, _auth: Auth {request: [Circular],hasAuth: false,sentAuth: false,bearerToken: null,user: null,pass: null }, _oauth: OAuth { request: [Circular], params: null }, _multipart: Multipart {request: [Circular],boundary: ’70a71426-724f-4b62-9296-5e245402b49a’,chunked: false,body: null }, _redirect: Redirect {request: [Circular],followRedirect: true,followRedirects: true,followAllRedirects: false,allowRedirect: [Function],maxRedirects: 10,redirects: [],redirectsFollowed: 0,removeRefererHeader: false }, _tunnel: Tunnel {request: [Circular],proxyHeaderWhiteList: [Object],proxyHeaderExclusiveList: [] }, headers: { accept: ’application/json’ }, setHeader: [Function], hasHeader: [Function], getHeader: [Function], removeHeader: [Function], method: ’GET’, localAddress: undefined, pool: {}, dests: [], __isRequestRequest: true, _callback: [Function], uri: Url {protocol: ’https:’,slashes: true,auth: null,host: ’api.weixin.qq.com’,port: 443,hostname: ’api.weixin.qq.com’,hash: null,search: ’?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37’,query: ’grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37’,pathname: ’/cgi-bin/token’,path: ’/cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37’,href: ’https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37’ }, proxy: null, tunnel: true, setHost: true, originalCookieHeader: undefined, _disableCookies: true, _jar: undefined, port: 443, host: ’api.weixin.qq.com’, path: ’/cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37’, _json: true, httpModule: { Server: [Object],createServer: [Function],globalAgent: [Object],Agent: [Object],request: [Function],get: [Function] }, agentClass: { [Function: Agent] super_: [Object] }, agent: Agent {domain: null,_events: [Object],_eventsCount: 1,_maxListeners: undefined,defaultPort: 443,protocol: ’https:’,options: [Object],requests: {},sockets: [Object],freeSockets: {},keepAliveMsecs: 1000,keepAlive: false,maxSockets: Infinity,maxFreeSockets: 256,maxCachedSessions: 100,_sessionCache: [Object] }, _started: true, href: ’https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37’, req: ClientRequest {domain: null,_events: [Object],_eventsCount: 4,_maxListeners: undefined,output: [],outputEncodings: [],outputCallbacks: [],outputSize: 0,writable: true,_last: true,chunkedEncoding: false,shouldKeepAlive: false,useChunkedEncodingByDefault: false,sendDate: false,_removedHeader: {},_contentLength: 0,_hasBody: true,_trailer: ’’,finished: true,_headerSent: true,socket: [Object],connection: [Object],_header: ’GET /cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37 HTTP/1.1rnhost: api.weixin.qq.comrnaccept: application/jsonrnCnnection: closernrn’,_headers: [Object],_headerNames: [Object],_onPendingData: null,agent: [Object],socketPath: undefined,method: ’GET’,path: ’/cgi-bin/token?grant_type=client_credential&appid=wxf959acc9ef3df3df&secret=a5eaa93a1f0b75e692c0fb88f8ecdd37’,parser: null,res: [Circular] }, ntick: true, response: [Circular], originalHost: ’api.weixin.qq.com’, originalHostHeaderName: ’host’, responseContent: [Circular], _destdata: true, _ended: true, _callbackCalled: true }, toJSON: [Function: responseToJSON], caseless: Caseless { dict: { connection: ’close’,’content-type’: ’application/json; encoding=utf-8’,date: ’Thu, 20 Oct 2016 09:40:53 GMT’,’content-length’: ’175’ } }, read: [Function], body: { access_token: ’FiHj9Q3p1rGFux1oSSiISxR-xNJfCXyFJEUT6NjlXyjhFrgBCoUZ7Ty1SXR_rbwjvBfyPo0m1CzU6QV6Ipaw1FgCKXRczjtXgEDg1BYmboxWE7GLeohv-rsYLT8OEa53XYSaAFASTN’, expires_in: 7200 } }Unhandled rejection TypeError: Cannot read property ’expires_in’ of undefined at E:慕課網(wǎng)7天搞定Node.js微信公眾號開發(fā)wechatwechatg.js:59:32 at tryCatcher (E:慕課網(wǎng)7天搞定Node.js微信公眾號開發(fā)wechatnode_modulesbluebirdjsreleaseutil.js:16:23) at Promise._settlePromiseFromHandler (E:慕課網(wǎng)7天搞定Node.js微信公眾號開發(fā)wechatnode_modulesbluebirdjsreleasepromise.js:510:31) at Promise._settlePromise (E:慕課網(wǎng)7天搞定Node.js微信公眾號開發(fā)wechatnode_modulesbluebirdjsreleasepromise.js:567:18) at Promise._settlePromise0 (E:慕課網(wǎng)7天搞定Node.js微信公眾號開發(fā)wechatnode_modulesbluebirdjsreleasepromise.js:612:10) at Promise._settlePromises (E:慕課網(wǎng)7天搞定Node.js微信公眾號開發(fā)wechatnode_modulesbluebirdjsreleasepromise.js:691:18) at Promise._fulfill (E:慕課網(wǎng)7天搞定Node.js微信公眾號開發(fā)wechatnode_modulesbluebirdjsreleasepromise.js:636:18) at Request._callback (E:慕課網(wǎng)7天搞定Node.js微信公眾號開發(fā)wechatnode_modulesbluebirdjsreleasenodeback.js:42:21) at Request.self.callback (E:慕課網(wǎng)7天搞定Node.js微信公眾號開發(fā)wechatnode_modulesrequestrequest.js:187:22) at emitTwo (events.js:87:13) at Request.emit (events.js:172:7) at Request.<anonymous> (E:慕課網(wǎng)7天搞定Node.js微信公眾號開發(fā)wechatnode_modulesrequestrequest.js:1048:10) at emitOne (events.js:77:13) at Request.emit (events.js:169:7) at IncomingMessage.<anonymous> (E:慕課網(wǎng)7天搞定Node.js微信公眾號開發(fā)wechatnode_modulesrequestrequest.js:969:12) at emitNone (events.js:72:20)

問題解答

回答1:

一個(gè) request 請求結(jié)果處理有問題

把g.js 的 第 55 行的request 改成

request({url: url, json: true}, function (error, response, body) { if (!error && response.statusCode === 200) {var data = JSON.parse(body);var now = (new Date().getTime());var expires_in = now + (data.expires_in - 20) * 1000;data.expires_in = expires_in;resolve(data);console.log(data); } else {reject() }});回答2:

request({url: url, json: true}).then(function (response) {console.log(’data-----’,response);var data = response[1];//看是不是這個(gè)問題var now = (new Date().getTime());var expires_in = now + (data.expires_in - 20) * 1000;data.expires_in = expires_in;resolve(data); })回答3:

你先看看 response返回是啥再說

標(biāo)簽: 微信
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩伦理福利| 日韩精品一卡二卡三卡四卡无卡| 欧美片网站免费| 国产精品一区二区三区av麻| 国产精品tv| 日韩成人综合| 久久美女精品| 女主播福利一区| 99久久夜色精品国产亚洲狼| 国产精品美女在线观看直播 | 欧美特黄一级大片| 久久在线91| 久久99伊人| 久久亚洲美女| 亚洲一区二区三区四区五区午夜| 国产一区亚洲| 99国产精品私拍| 亚洲综合三区| 综合亚洲色图| 精品视频在线你懂得| 国产日韩三级| 91一区二区| 天堂а√在线最新版中文在线| 成人福利视频| 精品欠久久久中文字幕加勒比| 免费看日韩精品| 日韩超碰人人爽人人做人人添| www.51av欧美视频| 亚洲va在线| 日韩一区二区三区免费视频| 韩国三级一区| 日韩精品亚洲专区在线观看| 国产一区调教| 中文亚洲免费| 日本精品黄色| 亚洲人成高清| 视频二区不卡| 7m精品国产导航在线| 日韩在线不卡| 日本成人一区二区| 欧美成人基地| 日韩综合一区二区| 开心激情综合| 美女网站久久| 国产欧美一区二区三区精品酒店| 国产农村妇女精品一二区| 国产亚洲一区二区三区啪| av免费不卡国产观看| 在线精品小视频| 麻豆久久一区| 免费av一区| 欧美精品99| 亚洲特色特黄| 日韩二区在线观看| 日本h片久久| 欧美.日韩.国产.一区.二区 | 亚洲精品123区| 亚洲精品看片| 国产极品久久久久久久久波多结野| 久久影视三级福利片| 午夜一区在线| 久久精品99国产精品日本| 婷婷激情图片久久| 国产欧美综合一区二区三区| 久久国产电影| 久久精品色播| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品视频在线你懂得| 亚洲九九精品| 欧美gv在线| 久久久久观看| 亚洲18在线| 日韩中文视频| 免费在线亚洲欧美| 中文字幕一区二区av| 欧美精选一区二区三区| 国产精品嫩模av在线| 亚洲欧洲另类| 亚洲第一区色| 国产黄色精品| 青青国产精品| 丝袜美腿成人在线| 日韩av一级| 91一区二区三区四区| 国产日韩三级| 欧美中文高清| 免费精品视频最新在线| 国产精品久久久久av电视剧| 久久午夜影院| 欧美天堂在线| 久久国产生活片100| 日韩高清中文字幕一区| 黄色日韩在线| 高清在线一区| 91欧美在线| 日韩av网站在线观看| 亚洲午夜国产成人| 中文字幕视频精品一区二区三区| 久久午夜精品| 91精品丝袜国产高跟在线| 久久xxxx| 视频在线观看91| 成人免费网站www网站高清| 成人亚洲精品| 精品午夜av| 欧美亚洲色图校园春色| 日韩av一区二区三区四区| 好看不卡的中文字幕| 欧美亚洲激情| 日韩精品永久网址| 国产伊人久久| 国产欧美一区二区三区精品酒店| 麻豆成人在线观看| 国产精品一级在线观看| 日韩美女国产精品| 亚洲精品麻豆| 国产另类在线| 久久99性xxx老妇胖精品| 另类亚洲自拍| 亚洲精品护士| 亚洲精品大全| 国产欧美精品久久| 欧美亚洲二区| 国产精一区二区| 国产午夜精品一区在线观看| 日韩午夜视频在线| 久久av综合| 精品一区视频| 免费在线成人网| 欧美一区精品| 日韩一区二区在线免费| 免费在线观看不卡| 欧美日韩在线网站| 亚洲人成网站在线在线观看| 久久不卡日韩美女| 麻豆免费精品视频| 午夜在线一区| 日韩一区三区| 亚洲小说春色综合另类电影| 深夜视频一区二区| 尤物网精品视频| 亚洲男女自偷自拍| 青青草视频一区| 国产欧美日韩综合一区在线播放| 久久gogo国模啪啪裸体| 国产66精品| se01亚洲视频| 亚洲一区二区三区高清不卡| 亚洲毛片一区| 丝袜国产日韩另类美女| 中文字幕一区二区三区四区久久 | 免费人成精品欧美精品| 国产精品久一| 精品国产网站| 午夜在线精品偷拍| 欧美亚洲网站| 欧美xxxx中国| 中国女人久久久| 91亚洲无吗| 国产一区精品福利| 一区二区自拍| 中日韩男男gay无套| 中文字幕日韩欧美精品高清在线| 日韩av一区二| 黄色在线网站噜噜噜| 亚洲激情黄色| 在线一区欧美| 日韩福利在线观看| 国产一区二区三区亚洲综合| 亚洲天堂久久| 理论片午夜视频在线观看| 日本不卡视频在线| 中文字幕av一区二区三区四区| 日本精品另类| 亚洲综合在线电影| 在线亚洲激情| 欧美日韩精品一本二本三本 | 精品高清久久| 好吊一区二区三区| 欧美视频久久| 不卡在线一区二区| 日韩三级精品| 欧美激情视频一区二区三区免费 | 美女一区网站| 欧美日韩伊人| 国产一区亚洲| 国产精品久久乐| 日本欧美在线看| 国产成人精品一区二区三区视频| 亚洲精选久久| 91精品国产福利在线观看麻豆| 国产乱人伦精品一区| 亚洲一级黄色| 欧美成人综合| 久久国产人妖系列| 成人羞羞在线观看网站| 午夜国产精品视频免费体验区| 精品视频久久| 综合五月婷婷| 国产精品社区|