代码之家  ›  专栏  ›  技术社区  ›  FranzHuber23

帆。JS:TypeError:无法读取未定义的属性“pkg”

  •  2
  • FranzHuber23  · 技术社区  · 7 年前

    当我试着驾驶我的简单帆船时。JS应用程序(包括swaggerui),我得到以下错误:

    $ sails lift
    
    info: Starting app...
    
    debug: hookPath: DummyPath\Software\MyService\node_modules\sails-swagger\dist\api\hooks\swagger
    debug: marlinspike (swagger): loading config from DummyPath\Software\MyService\node_modules\sails-swagger\dist\config
    debug: marlinspike (swagger): loading Services from DummyPath\Software\MyService\node_modules\sails-swagger\dist\api\services...
    warn: marlinspike (swagger): no Services found. skipping
    debug: marlinspike (swagger): loading Models...
    debug: marlinspike (swagger): loading Controllers...
    debug: marlinspike (swagger): loading Policies...
    warn: marlinspike (swagger): no Policies found. skipping
    DummyPath\Software\MyService\node_modules\sails-swagger\dist\api\hooks\swagger\index.js:49
            hook.doc = _libXfmr2['default'].getSwagger(_this.sails, _this.sails.config.swagger.pkg);
                                                                                              ^
    
    TypeError: Cannot read property 'pkg' of undefined
        at DummyPath\Software\MyService\node_modules\sails-swagger\dist\api\hooks\swagger\index.js:49:91
        at DummyPath\Software\MyService\node_modules\sails\lib\app\private\after.js:91:14
        at DummyPath\Software\MyService\node_modules\sails\node_modules\async\lib\async.js:721:13
        at DummyPath\Software\MyService\node_modules\sails\node_modules\async\lib\async.js:52:16
        at done (DummyPath\Software\MyService\node_modules\sails\node_modules\async\lib\async.js:246:17)
        at DummyPath\Software\MyService\node_modules\sails\node_modules\async\lib\async.js:44:16
        at Sails.<anonymous> (DummyPath\Software\MyService\node_modules\sails\node_modules\async\lib\async.js:718:17)
        at Sails.<anonymous> (DummyPath\Software\MyService\node_modules\sails\node_modules\async\lib\async.js:167:37)
        at Object.onceWrapper (events.js:293:19)
        at emitNone (events.js:86:13)
        at Sails.emit (events.js:188:7)
        at Sails.emitter.emit (DummyPath\Software\MyService\node_modules\sails\lib\app\private\after.js:50:11)
        at sailsReady (DummyPath\Software\MyService\node_modules\sails\lib\app\lift.js:53:11)
        at DummyPath\Software\MyService\node_modules\sails\node_modules\async\lib\async.js:721:13
        at DummyPath\Software\MyService\node_modules\sails\node_modules\async\lib\async.js:52:16
        at DummyPath\Software\MyService\node_modules\sails\node_modules\async\lib\async.js:269:32
    

    npm安装、npm卸载SAIL或npm缓存清除不起作用。 我已经尝试重新安装grunt cli,sails再次昂首阔步。。。 这里有人有解决方案吗?

    发布日期 github.com 也打开了。。。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Glen    7 年前

    当使用sails-swagger时,您还必须在sails应用程序的config目录中为swagger创建一个配置文件。此配置文件设置指向包的pkg变量。sails应用程序的json文件。

    上面的错误基本上是说无法找到属性pkg,因此swagger将不起作用。

    为了解决这个问题,首先创建一个名为swagger的文件。配置目录中的js。

    然后在招摇中添加以下内容。js文件

    module.exports.swagger = {
      /**
       * require() the package.json file for your Sails app.
       */
      pkg: require('../package'),
      ui: {
        url: 'http://swaggerui.balderdash.io'
      }
    };