TypeError:无法读取属性'替换'未定义的

时间:2017-08-29 11:47:30

标签: node.js seneca

错误

  
      
  • Seneca致命错误      ==================

         

    消息:seneca:行动cmd:注册,角色:api失败:无法读取属性'替换'未定义的。

         

    代码:act_execute

         

    详细信息:{message:'无法读取属性\'替换\' of undefined',        模式:' cmd:注册,角色:api',        fn:[功能:注册],        cb:[功能],        实例:' Seneca / pr061njfdnng / 1504005334341/1 / 3.2.2 / - ',        '原稿$&#39 ;:         TypeError:无法读取属性'替换'未定义的             在/usr/src/app/services/common.js:22:24             at Array.forEach(native)             在module.exports(/usr/src/app/services/common.js:20:13)             在Seneca.signup(/usr/src/app/services/api.js:117:17)             在execute_action(/usr/src/app/node_modules/seneca/seneca.js:1060:20)             at Object.act_fn [as fn](​​/usr/src/app/node_modules/seneca/seneca.js:1013:11)             在Immediate.processor(/usr/src/app/node_modules/gate-executor/gate-executor.js:136:14)             在runCallback(timers.js:781:20)             在tryOnImmediate(timers.js:743:5)             在processImmediate [as _immediateCallback](timers.js:714:5),        '消息$':'无法读取属性\'替换\' of undefined',        插件:{}}

         

    堆栈:          在/usr/src/app/services/common.js:22:24          at Array.forEach(native)          在module.exports(/usr/src/app/services/common.js:20:13)          在Seneca.signup(/usr/src/app/services/api.js:117:17)          在execute_action(/usr/src/app/node_modules/seneca/seneca.js:1060:20)          at Object.act_fn [as fn](​​/usr/src/app/node_modules/seneca/seneca.js:1013:11)          在Immediate.processor(/usr/src/app/node_modules/gate-executor/gate-executor.js:136:14)          在runCallback(timers.js:781:20)          在tryOnImmediate(timers.js:743:5)          at processImmediate [as _immediateCallback](timers.js:714:5)

  •   

代码

if(queryString.indexOf('?') > -1){
        queryString = queryString.split('?')[1];
      }
      var pairs = queryString.split('&');

      pairs.forEach(function(pair) {
        pair = pair.split('=');      
        var s = pair[1].replace(/\+/g," ");
        //console.log('s', s);
        //console.log('pair[1]', pair[1]);
        var sfinal = decodeURIComponent(s || '');
        //console.log('sfinal', sfinal);

        result[pair[0]] = sfinal;
      });
      //done( null, result )  

2 个答案:

答案 0 :(得分:1)

如果没有' ='在对中,返回的数组将具有单个元素,索引1将返回undefined。也许你应该检查一下。

答案 1 :(得分:1)

替换你的代码

var s = pair[1].replace(/\+/g," ");

var s = (!isNaN(pair[1])) ? pair[1].replace(/\+/g," ") : null;