Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 膝关节炎的最新要求_Javascript_Node.js_Server_Koa - Fatal编程技术网

Javascript 膝关节炎的最新要求

Javascript 膝关节炎的最新要求,javascript,node.js,server,koa,Javascript,Node.js,Server,Koa,我可能不了解JS,但我在编写对页面正文的最纯粹的响应时遇到了一个问题。就像这里: var KAa=要求(膝关节炎) ,session=require('koa-session') ,mount=require('koa-mount') ,koaqs=require('koa-qs') ,accesslog=require('koa-accesslog') ,router=require('koa-router')() ,app=koa(); var Grant=require('Grant-

我可能不了解JS,但我在编写对页面正文的最纯粹的响应时遇到了一个问题。就像这里:

<代码> var KAa=要求(膝关节炎) ,session=require('koa-session') ,mount=require('koa-mount') ,koaqs=require('koa-qs') ,accesslog=require('koa-accesslog') ,router=require('koa-router')() ,app=koa(); var Grant=require('Grant-koa') ,grant=new grant(需要('./config.json')) app.keys=['grant'] app.use(accesslog()) .使用(会话(应用程序)) .使用(坐骑(授予)) .use(router.routes()) .use(router.allowedMethods()); koaqs(应用程序) router.get('/handle\u facebook\u callback',函数*(下一步){ getProfile(this.query.access\u令牌); }) 变量配置={ “facebook”:{ "https://graph.facebook.com": { “_域”:{ “auth”:{ “auth”:{“承载者”:“[0]” } }, “{endpoint}”:{ “_路径”:{ “别名”:“默认值” } } } } } var request=require('请求') ,purest=require('purest')({request}) ,facebook=purest({provider:'facebook',config}) 函数getProfile(访问令牌、响应主体){ facebook.get(‘我’) .auth(访问令牌) .请求(功能(错误、恢复、正文){ this.body=JSON.stringify(body,null,2); }) } 如果(!module.parent)应用程序侦听(3000); console.log('哦!GG正在运行http://localhost:3000/');路由(生成器)没有等待
getProfile
完成。你需要
产量

现在在您的代码段中,它执行<代码> GETFrime<代码>,它立即返回到生成器,生成器完成,Koa看到您还没有设置<代码>这个.Boo< <代码>,因此默认为404响应。 一旦

getProfile
中的回调在稍后某个点最终触发,响应已经发送,您就会得到错误

获取回调样式函数与膝关节炎一起使用的一般解决方案(即使它可以<代码>屈服< /代码>它)将它包在一个承诺中:

function getProfile (access_token) {
  return new Promise(function (resolve, reject) {
    facebook.get('me')
      .auth(access_token)
      .request(function (err, res, body) {
        if (err) return reject(err)
        resolve(body)
      })
  })
}

router.get('/handle_facebook_callback', function * (next) {
  const profile = yield getProfile(this.query.access_token)
  this.type = 'application/json'
  this.body = JSON.stringify(profile, null, 2)
})
getProfile
现在返回一个您可以实现的承诺

也注意,我改变了它,使<代码> GETFrime<代码>与配置文件对象一起解析,Koa handler是一个拼接在一起的代码< > <>这通常是你想在膝关节炎中做的事情,这样你的所有反应突变都发生在一个地方的处理器中。

< P>路由(生成器)不等待<代码> GETFrime结束。你需要
产量

现在在您的代码段中,它执行<代码> GETFrime<代码>,它立即返回到生成器,生成器完成,Koa看到您还没有设置<代码>这个.Boo< <代码>,因此默认为404响应。 一旦

getProfile
中的回调在稍后某个点最终触发,响应已经发送,您就会得到错误

获取回调样式函数与膝关节炎一起使用的一般解决方案(即使它可以<代码>屈服< /代码>它)将它包在一个承诺中:

function getProfile (access_token) {
  return new Promise(function (resolve, reject) {
    facebook.get('me')
      .auth(access_token)
      .request(function (err, res, body) {
        if (err) return reject(err)
        resolve(body)
      })
  })
}

router.get('/handle_facebook_callback', function * (next) {
  const profile = yield getProfile(this.query.access_token)
  this.type = 'application/json'
  this.body = JSON.stringify(profile, null, 2)
})
getProfile
现在返回一个您可以实现的承诺

也注意,我改变了它,使<代码> GETFrime<代码>与配置文件对象一起解析,Koa handler是一个拼接在一起的代码< >


<>膝关节炎患者,您可以在KOA中做所有的反应,这样您的所有反应突变都发生在处理器的一个地方。

UndoBy.InnHTMLand您能澄清它在服务器上还是在用户端?膝关节炎是NoDEJS=的服务器框架,但不是体用户端吗?您应该调用<代码>收益GETFrAGE(CTX,Access)。来自膝关节炎的中间件;膝关节炎,将代码< > GETPrime<代码>转换为生成器函数,并将<代码> > .Soo< <代码> >代码> CTX.BooS<代码> Ude body.innerHtmlAnd。您能解释它在服务器上还是在用户端?膝关节炎是NoDEJS=的服务器框架,但不是体用户端?您应该从KOA中间件调用<代码>收益GETFrPT(CTX,Access)/<代码>;并将
getProfile
更改为生成器函数,将
this.body
更改为
ctx.body