我有一个运行Node.js
的服务器,我的问题是,运行服务器是否可能像我通常那样(使用命令node app.js
)来传递参数(例如[UserID; IterationID] ;简档])。后来我想用这些参数来生成画布(我不知道如何读取参数)。
var fs = require('fs');
const log=require('simple-node-logger').createSimpleLogger();
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
var port = process.env.PORT || 8000;
app.use(express.static(__dirname + '/server'));
app.use(express.static(__dirname + '/public'));
app.use('/images', express.static(__dirname +'/images'));
app.get('/', function(req, res){
res.sendfile('main.html');
});
app.listen(port, function(){
//console.log('server is running on ' + port);
});
app.post('/submit', function(req, res){
console.log(req.body.rank);
return res.sendfile('success.html');
});
非常感谢你!
答案 0 :(得分:3)
您可以传递环境参数。这是linux终端命令示例:
YOUR_PARAM=param_value YOUR_PARAM2=param_value2 node app.js
在代码中,您可以访问process.env对象中的那些参数:
console.log(process.env.YOUR_PARAM); // "param_value"
console.log(process.env.YOUR_PARAM2); // "param_value2"
这通常用于定义应用程序的运行位置(本地,开发服务器,生产服务器)。 在我看来,最好将其余配置放在JSON文件中并根据应用程序环境加载它们。 所以基本上首先要定义应用程序的运行位置,然后根据该负载确定指定文件中的正确配置。这样你甚至可以通过git与团队的其他成员分享配置。
<强> P.S。强> 还值得一提的是,约定是用大写字母定义process.env变量,以避免覆盖某些nodejs或系统环境变量(如果你在console.log中调用process.env对象,你会在那里看到很多配置数据)。
答案 1 :(得分:0)
Moogoo已经提供了出色而详细的答案:How do I pass command line arguments?
如果您需要高级处理,还可以使用同一thread中推荐的库。