在生产模式下无法提升风帆。(风帆提升 - 生产 - 无法运行)

时间:2015-12-02 17:28:37

标签: javascript node.js sails.js

我想在生产模式中提升我的风帆。当我运行sails lift --prod --verbose时,我遇到了一堆错误。 我的local.js文件看起来像这样。

  /**
     * Local environment settings
*
 * While you're developing your app, this config file should include
 * any settings specifically for your development computer (db   passwords, etc.)
 * When you're ready to deploy your app in production, you can use   this file
 * for configuration options on the server where it will be deployed.
 *
 *
 * PLEASE NOTE:
 *        This file is included in your .gitignore, so if you're using  git
 *        as a version control solution for your Sails app, keep in   mind that
 *        this file won't be committed to your repository!
 *
 *        Good news is, that means you can specify configuration for your local
 *        machine in this file without inadvertently committing personal information
 *        (like database passwords) to the repo.  Plus, this prevents other members
 *        of your team from commiting their local configuration changes on top of yours.
 *
 *
 * For more information, check out:
 * http://sailsjs.org/#documentation
 */
var config={

development:{
    connections: {

            mongo: {
            adapter: 'sails-mongo',
            host: 'localhost',
            user: '',
            password: '',
            database: 'mydata',
            schema: true
        }
    },
    mailer:{
        hostUrl:'http://localhost:1337/',
        emailConfirm:'confirm/',
        inviteMoreFriends:'myspace'
    },
    geoSpatial:{
        radiusOfEarth:6375,
        radius:3,
        maxRecords:20
    },
    facebook:{
        clientID: "CLIENT ID",
        clientSecret: "SECRET",
        callbackURL: "http://www.EXAMPLE.com:1337/auth/facebook/callback"
    }
}
}
module.exports = {


// The `port` setting determines which TCP port your app will be deployed on
// Ports are a transport-layer concept designed to allow many different
// networking applications run at the same time on a single computer.
// More about ports: http://en.wikipedia.org/wiki/Port_(computer_networking)
//
// By default, if it's set, Sails uses the `PORT` environment variable.
// Otherwise it falls back to port 1337.
//
// In production, you'll probably want to change this setting
// to 80 (http://) or 443 (https://) if you have an SSL certificate

port: process.env.PORT || 1337,


// The runtime "environment" of your Sails app is either 'development' or 'production'.
//
// In development, your Sails app will go out of its way to help you
// (for instance you will receive more descriptive error and debugging output)
//
// In production, Sails configures itself (and its dependencies) to optimize performance.
// You should always put your app in production mode before you deploy it to a server-
// This helps ensure that your Sails app remains stable, performant, and scalable.
//
// By default, Sails sets its environment using the `NODE_ENV` environment variable.
// If NODE_ENV is not set, Sails will run in the 'development' environment.

environment: process.env.NODE_ENV || 'development',


development: {
    //config is placed as the attributes needed by aws config node module
    aws: {
        region: 'REGION',
        accessKeyId: 'KEY ID',
        secretAccessKey: 'SECRET',
        cloudFrontCDN: 'EXAMPLE.cloudfront.net'
    },
    s3: {
        Bucket: 'MY_BUCKET',
        endpoint: 'ENDPOINT',
        imageUrl: 'URL'
    },
    uploads: {
        thumbnails: __dirname + '/../uploads/thumbnails/'
    }



},
likeprod: {
    //config is placed as the attributes needed by aws config node module
    aws: {
        region: 'REGION',
        accessKeyId: 'KEY ID',
        secretAccessKey: 'SECRET',
        cloudFrontCDN: 'EXAMPLE.cloudfront.net'
    },
    s3: {
        Bucket: 'MY_BUCKET',
        endpoint: 'ENDPOINT',
        imageUrl: 'URL'
    },
    uploads: {
        thumbnails: __dirname + '/../uploads/thumbnails/'
    }


},

mandrillApiKey:"API_KEY",
twilio:{
    accountSid:'SECRET',
    authToken:'TOKEN'
},
metaPublic:{
    groupBookNumber:'+0123456789'
},

    connections:config[process.env.NODE_ENV].connections,
    mailer:config[process.env.NODE_ENV].mailer,
    geoSpatial:config[process.env.NODE_ENV].geoSpatial,
    facebook:config[process.env.NODE_ENV].facebook,

//TODO: refactor the config[environment] as for connections
current: function () {
    return sails.config[sails.config.environment]
}

};

当我运行风帆升降机 - 时。我收到了这个错误。

 $ sails lift --prod --verbose

info: Starting app...

verbose: Please run `npm install coffee-script` to use coffescript     (skipping for now)
verbose: Setting Node environment...
verbose: moduleloader hook loaded successfully.
verbose: Loading app config...

/home/vgulp/Desktop/config/local.js:136
connections:config[process.env.NODE_ENV].connections,
                                        ^
TypeError: Cannot read property 'connections' of undefined
at Object.<anonymous> (/home/Desktop/vka/config/local.js:136:45)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at       /home/Desktop/vka/node_modules/sails/node_modules/include-all/index.js:129:29
at Array.forEach (native)
at requireAll (/home/Desktop/vka/node_modules/sails/node_modules/include-all/index.js:44:9)
at buildDictionary (/home/Desktop/vka/node_modules/sails/node_modules/sails-build-dictionary/index.js:68:14)
at Function.module.exports.aggregate (/home/Desktop/vka/node_modules/sails/node_modules/sails-build-dictionary/index.js:190:9)
at Array.loadOtherConfigFiles [as 0] (/home/Desktop/vka/node_modules/sails/lib/hooks/moduleloader/index.js:102:22)
at /home/Desktop/vka/node_modules/sails/node_modules/async/lib/async.js:459:38
at Array.forEach (native)
at _each (/home/Desktop/vka/node_modules/sails/node_modules/async/lib/async.js:32:24)
at Object.async.auto (/home/Desktop/vka/node_modules/sails/node_modules/async/lib/async.js:430:9)

任何人都可以提出解决方案。

2 个答案:

答案 0 :(得分:3)

[编辑:以下答案基于作者完全改变的原始问题]

您的风帆应用需要在生产模式下升级,或者您需要指定配置文件中使用的端口。

生产模式在端口80上运行您的快速服务器。

您的AWS实例设置是否以生产模式解除应用程序?

http://sailsjs.org/documentation/anatomy/my-app/config/env/production-js

答案 1 :(得分:2)

production中没有为local.js指定连接(当您从桌面运行时)

正如错误所说,

  

连接:配置[process.env.NODE_ENV] .connections,                                           ^   TypeError:无法读取未定义的属性“connections”

process.env.NODE_ENV

中运行时,

production--prod

var config = {

    development: {
        connections: {

            mongo: {
                adapter: 'sails-mongo',
                host: 'localhost',
                user: '',
                password: '',
                database: 'mydata',
                schema: true
            }
        },
        mailer: {
            hostUrl: 'http://localhost:1337/',
            emailConfirm: 'confirm/',
            inviteMoreFriends: 'myspace'
        },
        geoSpatial: {
            radiusOfEarth: 6375,
            radius: 3,
            maxRecords: 20
        },
        facebook: {
            clientID: "CLIENT ID",
            clientSecret: "SECRET",
            callbackURL: "http://www.EXAMPLE.com:1337/auth/facebook/callback"
        }
    },
    production: {
        connections: {

            mongo: {
                adapter: 'sails-mongo',
                host: 'localhost',
                user: '',
                password: '',
                database: 'mydata',
                schema: true
            }
        },
        mailer: {
            hostUrl: 'http://localhost:1337/',
            emailConfirm: 'confirm/',
            inviteMoreFriends: 'myspace'
        },
        geoSpatial: {
            radiusOfEarth: 6375,
            radius: 3,
            maxRecords: 20
        },
        facebook: {
            clientID: "CLIENT ID",
            clientSecret: "SECRET",
            callbackURL: "http://www.EXAMPLE.com:1337/auth/facebook/callback"
        }
    }
}