第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在嵌套函數(shù)中使用 req.accept 時 req 未定義

在嵌套函數(shù)中使用 req.accept 時 req 未定義

汪汪一只貓 2023-01-06 09:32:49
我最近在使用 express中的內(nèi)置 、 、 和 函數(shù)時遇到了req.accepts一個 req.acceptsLanguages問題req.acceptsCharsets。req.acceptsEncodings我有一個像這樣的快速中間件功能:function acceptCheckpoint(acceptOpts) {  // Calling the following function results in a TypeError.  function checkAccept(req, res, opts) {    let acceptFunction = null;    switch (opts.whichAccept) {    case "type":      acceptFunction = req.accepts;      break;    case "lang":      acceptFunction = req.acceptsLanguages;      break;    case "charset":      acceptFunction = req.acceptsCharsets;      break;    case "encoding":      acceptFunction = req.acceptsEncodings;      break;    default:      acceptFunction = req.accepts;      break;    }    return acceptFunction(opts.acceptedTypes);  }  return (req, res, next) => {    const accepted = [];    Object.getOwnPropertyNames(acceptOpts).forEach(key => {      if (key === "ignoreAcceptMismatch") { return; }      const acceptsType = checkAccept(req, res, {        whichAccept: key,        acceptedTypes: acceptOpts[key]      });      accepted.push(acceptsType);    });    if (accepted.some(type => !type) && !acceptOpts.ignoreAcceptMismatch) {      res.type("html");      res.status(406);      res.send("<h1>406 Not Acceptable.</h1>");      return;    }    next();  };}問題是,當我在主函數(shù) ( ) 中使用req.accepts或其中一個函數(shù)時,如下所示:.acceptsacceptCheckpoint// Pretend we're in acceptCheckpoint...// This works.accepted.push(req.accepts("html"));有用。而且,當我req在這些函數(shù)中的任何一個中記錄對象時,它都會返回預(yù)期值。我還嘗試將req對象記錄request.js到 express 模塊的文件中,然后它返回了undefined. 所以這讓我相信這是表達本身的問題。我嘗試刪除 package-lock.json 和 node_modules,然后運行npm install. 沒修好。是的,我正確地調(diào)用了 express 中間件函數(shù)。知道為什么會這樣嗎?我使用的是 express v4.17.1、Node.JS v12.18.1 和 NPM v6.14.5。
查看完整描述

1 回答

?
阿波羅的戰(zhàn)車

TA貢獻1862條經(jīng)驗 獲得超6個贊

該函數(shù)可能試圖req從其this上下文中獲取。但是您沒有傳遞帶有上下文的函數(shù)。

更改此行:

return acceptFunction(opts.acceptedTypes);

到:

return acceptFunction.call(req, opts.acceptedTypes);

call()方法的第一個參數(shù)是應(yīng)該this在被調(diào)用函數(shù)中使用的對象。


查看完整回答
反對 回復(fù) 2023-01-06
  • 1 回答
  • 0 關(guān)注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號