我知道我可以使用web.config.
<iisnode
node_env="production"
/>
Run Code Online (Sandbox Code Playgroud)
指定一个node_env可以在服务器端*.js文件中访问的环境变量process.env.node_env.
但是,例如我想访问另一个环境变量,如
process.env.GLOBAL_PREFIX.类似的方案,例如访问AWS凭据.
当我尝试
<iisnode
node_env="production"
GLOBAL_PREFIX="somevalue"
/>
Run Code Online (Sandbox Code Playgroud)
,由于无法识别的web.config文件,我无法运行应用程序.
我浏览了很多其他帖子,但我对此感到非常迷失。
我可以运行 aconsole.log(req)并得到以下输出
ServerResponse {
...
req:
IncomingMessage {
...
url: '/my-endpoint',
method: 'POST',
statusCode: null,
statusMessage: null,
...
body: { foo: 'bar' },
_body: true,
...
route: Route { path: '/my-endpoint', stack: [Object], methods: [Object] } },
...
Run Code Online (Sandbox Code Playgroud)
看起来很可靠,所以我希望这样做console.log(req.body)并返回{ foo: 'bar' }控制台......但是不,变得未定义
经过研究,我发现这可能与我的app.js文件有关,特别是与body-parser,但是,我已经拥有了所有这些
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var http …Run Code Online (Sandbox Code Playgroud) 我已经node使用npm下面的命令安装了。
sudo npm cache clean -f
sudo npm install -g n
sudo n 8
Run Code Online (Sandbox Code Playgroud)
sudo n 8安装node 8。
$ sudo n 8
install : node-v8.11.3
mkdir : /usr/local/n/versions/node/8.11.3
fetch : https://nodejs.org/dist/v8.11.3/node-v8.11.3-darwin-x64.tar.gz
######################################################################## 100.0%
installed : v6.13.1
Run Code Online (Sandbox Code Playgroud)
但没有将其设置为默认值
$ node -v
v6.13.1
Run Code Online (Sandbox Code Playgroud)
如何将节点版本 8 设置为默认节点版本。
假设这是 linux shell,我想做的是:
copy file1 tmp
rename tmp file2
Run Code Online (Sandbox Code Playgroud)
我可以做瀑布
function copyFile(cb) {
child_process.exec('cp file1 tmp', function (error, stdout, stderr) {
......
});
}
async.waterfall([
copyFile,
renameFile
], function (error) {
if (error) {
//handle readFile error or processFile error here
}
});
Run Code Online (Sandbox Code Playgroud)
或者猜我可以做
child_process.execSync('cp file1 tmp");
child_process.execSync('rename tmp file2');
Run Code Online (Sandbox Code Playgroud)
请问有什么区别?例如性能?阻塞?非常感谢 !
一个socketIO握手看起来像这样:
http://localhost:3000/socket.io/?EIO=3&transport=polling&t=M5eHk0h
是什么t参数?找不到解释。
当前环境不支持使用socket.io的WebSockets时,有什么好处?
许多函数用于多个文件.所以,我一直在重构我的JS,所以我可以为所有不同的文件提供单一功能服务.我是JS的新手并且正在阅读文档,看起来全局变量在整个应用程序中都可用.
如果我创建一个全局变量,比如说Total,这个变量名在我的应用程序的其他几个部分中使用.我不希望不同的Totals 之间发生冲突......但是,我确实希望利用一个共同的功能,calculateTotals().鉴于它是一个多用户应用程序,我需要"隔离" Total另一个的每个实例.我不想诉诸于他们所有不同的名字.
那么 - 如何制作一个特定于单个文件的"全局变量"?
我正在尝试使用函数来构建基于作为参数传入的分隔符的字符串.其中一个分隔符是\n字符,传入换行符作为参数不输出我的预期.
let concat = function(a, b, sep) {
return a + sep + b;
};
concat('Hello', 'World', '\n'); // Outputs 'Hello\nWorld'
Run Code Online (Sandbox Code Playgroud)
期望的输出:
你好
世界
我如何实现这一点,以便我得到我的输出字符串尊重换行符字符转义符号而不是将其视为字符串'\n'?
node.js ×7
javascript ×4
socket.io ×2
express ×1
iisnode ×1
long-polling ×1
npm ×1
scope ×1
websocket ×1