我遇到风帆0.9.8的问题。我已经在我的Mac上安装了风帆并且也提升了,它运行良好,但是当开始生成控制器和模型然后再次启动提升命令时它会显示一些错误,如:
$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)
答案 0 :(得分:2)
根据您从Waterline获得的错误,看起来您的全局Sails依赖项存在问题。这不是Waterline for Sails 0.9.8的正确版本。如果您一直在尝试其他版本的Sails,就会发生这种情况; npm缓存有点混乱。要更正它,请执行以下操作:
sudo npm uninstall sails -g
npm cache clear
sudo npm install sails -g
这将重新安装具有所有正确依赖项的Sails。你不应该改变你的项目。
答案 1 :(得分:0)
你可能只是缺少一些模块。例如,如果使用sudo npm install sails -g
之类的全局安装基本依赖项,则新生成的Sails应用程序将解除而没有任何问题,但是一旦开始添加某些功能,它可能需要其他模块(可能与数据库适配器相关)在你的情况下)。
简而言之,只需从项目文件夹中运行npm install
,它就会创建一个node_modules
子文件夹并在其中安装项目的依赖项。
答案 2 :(得分:0)
我今天看到了这个问题。全局重新安装Sails对我不起作用,因为我安装了两个Sails副本。删除本地安装的副本强制Node使用全局安装的Sails副本及其所有依赖项来确定所有内容。