Windows上的环境变量用于节点

时间:2016-01-11 13:50:34

标签: node.js windows cygwin environment-variables

我在Windows服务器上运行节点,通过Cygwin,我需要设置一些env变量。 我需要脚本:

./ run-linux.sh - 在linux或mac上运行

.post(function(req, res){
    // ...
    /* requires 'stream' as 
     * var stream = require('stream');
     * var copyFrom = require('pg-copy-streams').from;
     */
    var read_stream_string = new stream.Readable();
    read_stream_string.read = function noop() {};
    var keys = [...]; // set of dictionary keys to extract from req.body 
    read_stream_string.push(convertDictsToTSV(req.body, keys));
    read_stream_string.push(null);
    pg.connect(connectionString, function(err, client, done) {
        // ...
        // error handling
        // ...
        var copy_string = 'Copy tablename (' + keys.join(',') + ') FROM STDIN'
        var pg_copy_stream = client.query( copyFrom( copy_string ) );
        read_stream_string.pipe(pg_copy_stream).on('finish', function(finished){
            // handle finished and done appropriately
        }).on('error', function(errored){
            // handle errored and done appropriately
        });
    });
    pg.end();
});

和./run-windows - 在Windows上运行

SBS_API_KEY="ksdjfdsklfjds" \
SBS_AUTH_USERNAME="dkfjsdl" \
SBS_AUTH_PASSWORD="lksdjfsdlfj" \
SBS_S3_KEY="lskdfjsdlkfjdslfj" \
SBS_S3_SECRET="ldfkjdflgjdflgjdf" \
SBS_BITCODIN_KEY="kldfjldsjfsdlfj" \
npm start

我尝试了几种可能性,但是当我运行它时,我无法使节点获取./run-windows中设置的Env变量。

使这项工作的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

对于Windows环境变量,请勿尝试连接设置。而是简单地依次设置它们,如下所示

set SBS_API_KEY="ksdjhdskfhskdfhshsd"
set SBS_AUTH_USERNAME="kdsfkfshdskjf"
set SBS_AUTH_PASSWORD="ksdffsdkfhdsk"
set SBS_S3_KEY="sdlkfjldskfjdslfjsdl"
set SBS_S3_SECRET="sdlkjfdlskfjlsdfj"
set SBS_BITCODIN_KEY="kdjshfksdsdkhf"

当我在命令行上设置环境变量并且应该在批处理文件中正常工作时,这是有效的。顺便说一下,我希望您的run-windows批处理文件以.bat.cmd

结束