如何通过命令设置全局variables

感谢这么多快速的回应。
我使用NodeJS(v4.3.2)和ExpressJs(v4.x)来build立网站。
我用了很多AJAX和所有AJAX url指向一个静态IP(AWS服务器本身)。
因为我将部署到多个服务器,我不想单独更改AJAXurl。 我的想法是当我运行“node bin / www”命令行时,我可以将其更改为“node bin / www 50.50.50.50(我的AWS地址)”,我可以将所有的AJAX url设置为正确的IP?
这是可能的或其他替代性的溶解?
谢谢

您的问题与CORS相关:基本上,如果http://www.example1.com未明确允许,则无法通过Ajaxhttp://www.example2.com访问域http://www.example1.com在回应中。

这是大多数现代浏览器的“安全”function。 你不会遇到这个问题使用命令行,如curl或铬扩展Postman

要解决这个问题,请确保服务器响应中的Access-Control-Allow-Origin标头中Access-Control-Allow-Origin请求数据的域( http://www.example2.com )以及http动词( GETPOSTPUT …或*为每个http方法)。

这一切都归结于将以下两个标题添加到http://www.example1.com服务器的响应:

 Access-Control-Allow-Origin: http://www.example2.com Access-Control-Allow-Methods: * 

编辑

按照@ Paulpro的评论,你必须重新绑定所有的URL,以便它们到达你的服务器的IP而不是你的localhost服务器。

我解决了这个问题。
首先,在bin / www
追加这些代码来检索命令行的URL并存储到json文件中。

 function setUpURL(){ var myURL = process.argv[2]; console.log('myURL: ', myURL); var outputFilename = 'public/myURL.json'; var myData = { port:myURL } fs.writeFile(outputFilename, JSON.stringify(myData, null, 4), function(err) { if(err) { console.log(err); } else { console.log("JSON saved to " + outputFilename); } }); }; 

然后在每个包含ajax的JS中,将这些代码添加到JS文件的头部(它需要在ajax之前加载)

 var myURL; $.getJSON("myURL.json", function(json) { myURL = json.port.toString(); console.log(myURL); }); 

新的ajax格式

 $.ajax({ type: "POST", url: myURL + "/forgetPwd", data: sendData, success: function(data){ window.location.replace(myURL); }, error: function(data){ } }); 

最后,你可以运行服务器

节点bin / www your_aws_ip

它现在适合我。 希望这些会帮助你们。
顺便说一句,你应该小心myURL.json的path。