javascript - Sails.JS:类型错误:无法读取未定义的属性 'pkg'

标签 javascript node.js sails.js

当尝试运行我的简单 Sails.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 install、npm uninstall sails 或 npm 缓存清除不起作用。 我已经尝试重新安装 grunt-cli 和 sails-swagger 了...... 这里有人有解决办法吗?

问题 github.com也打开了...

最佳答案

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

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

要解决此问题,首先在 config 目录中创建一个名为 swagger.js 的文件。

然后将以下内容添加到 swagger.js 文件

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

关于javascript - Sails.JS:类型错误:无法读取未定义的属性 'pkg',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47371782/

相关文章:

javascript - jQuery CSS 不工作但 Animate 是

node.js - 如何获取node.js中的 "name"属性

javascript - 用于 Controller 、模型和 View 的 Sails.js 嵌套文件夹

jquery - SailsJS v0.10.0-rc7/grunt 以正确的顺序加载 js 资源

javascript - sails +布伦特里 : Unable to send the transactions details to client

javascript - 使用窗口原型(prototype)覆盖所有窗口的 window.print() ?

php - 如何在 PHP 中实现这个歌词 API?

javascript - JavaScript/jQuery 事件排序有问题吗?

mysql - 从相关表(模型)中获取数据sequelize

node.js - Heroku 上的 Express 应用程序出现应用程序错误