通过传递参数

时间:2018-03-09 16:01:04

标签: html node.js canvas

我有一个运行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');
});

非常感谢你!

2 个答案:

答案 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中推荐的库。