0

我对sails 0.9.8 有疑问。我已经在我的 mac 上安装了sails 并且也安装了升降机,它运行良好,但是当开始生成控制器和模型然后再次启动升降机命令时,它会显示一些错误,例如:

$sails lift

/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/core/index.js:68
    var schemaAttributes = this.waterline.schema[this.identity].attributes;
                                                ^
TypeError: Cannot read property 'user' of undefined
    at _.extend._initialize (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/core/index.js:68:49)
    at module.exports (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/core/index.js:45:8)
    at module.exports (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/collection/index.js:57:8)
    at new child (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/utils/extend.js:17:39)
    at instantiateCollection (/usr/local/lib/node_modules/sails/lib/hooks/orm/index.js:174:25)
    at /usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:108:13
    at Array.forEach (native)
    at _each (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:32:24)
    at Object.async.each (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:107:9)
    at Hook.startORM (/usr/local/lib/node_modules/sails/lib/hooks/orm/index.js:164:10)
    at Array.bound [as 1] (/usr/local/lib/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21)
    at listener (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:462:46)
    at /usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:416:17
    at Array.forEach (native)
    at _each (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:32:24)
    at Object.taskComplete (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:415:13)
    at processImmediate [as _immediateCallback] (timers.js:330:15)
4

3 回答 3

2

根据您从 Waterline 收到的错误,您的全局 Sails 依赖项似乎存在问题。这不是 Sails 0.9.8 的 Waterline 的正确版本。如果您一直在尝试其他版本的 Sails,则可能会发生这种情况;npm 缓存有点混乱。要更正它,请执行以下操作:

  1. sudo npm uninstall sails -g
  2. npm cache clear
  3. sudo npm install sails -g

这将使用所有正确的依赖项重新安装 Sails。你不应该改变你的项目。

于 2014-01-24T17:03:03.980 回答
0

您可能只是缺少一些模块。例如,如果使用类似 的全局安装基本依赖项,则sudo npm install sails -g新生成的 Sails 应用程序将毫无问题地解除,但一旦您开始添加一些功能,它可能需要其他模块(在您的情况下可能与 DB 适配器相关)。

长话短说,只需npm install从您的项目文件夹中运行,它将创建一个node_modules子文件夹并在其中安装项目的依赖项。

于 2014-01-24T14:29:41.763 回答
0

我今天看到了这个问题。全局重新安装 Sails 对我不起作用,因为我安装了两个 Sails 副本。删除本地安装的副本会迫使 Node 使用 Sails 的全局安装副本及其所有修复了所有问题的依赖项。

于 2014-02-02T20:29:32.133 回答