我在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变量。
使这项工作的正确方法是什么?
答案 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