Articles of node.js

Node.js Express静态资产的区分大小写

如何设置express.static的路由是否区分大小写? 例如Express是否应该通过提供名为Image.jpeg的本地文件来处理image.jpeg的请求。 当调用express.Router([options]) (在http://expressjs.com/en/4x/api.html中定义express.Router([options])时有一个caseSensitive选项,但是在调用express.static(root, [options]) (文档在同一链接)。 默认情况下,我将不区分大小写的卷(/ Mac OS X)的静态文件提供给区分大小写的卷(/ Linux)。 这会导致我们的应用程序中出现不一致的错误 – 在Mac OS X中,某些具有不匹配的内容在本地工作,但在部署到Linux服务器时会失败。

在Windows上发送数据报时发生EACCES错误

当执行dgram.udp4套接字的send()方法时,我的程序会抛出EACCES错误,但只能在Windows上执行。 代码: var dgram = require('dgram'); var monsocket = dgram.createSocket("udp4"); monsocket.on("listening", function () { comBroadcastCallUp(); }); var comBroadcastCallUp = function() { var message = new Buffer(JSON.stringify({ protocol: "psdp", command: "call-up" })); monsocket.setBroadcast(true); monsocket.send(message, 0, message.length, 32681, '255.255.255.255', function (err) { if (err) console.log(err) else console.log("<PcStatus:PSDP> Message sent: " + message + os.EOL + "Message length: […]

我如何访问Windows上的节点上的stdout.columns?

我正在编写一些节点代码来在控制台的最右侧粘贴一些文本。 我的代码工作得很好,但每当我打电话给process.stdout.columns它说我的窗口是80宽,不pipe实际宽度是多less。 我在Windows 7 x64上运行cmd.exe。 是否还支持使用process.stdout.columns?

Npm安装; 在angular-phonecat@0.0.0预启动脚本失败

我可以知道这里有什么问题吗? 我无言以对…谢谢。 npm ERR! angular-phonecat@0.0.0 prestart: `npm install` npm ERR! spawn ENOENT npm ERR! npm ERR! Failed at the angular-phonecat@0.0.0 prestart script. npm ERR! This is most likely a problem with the angular-phonecat package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! npm install […]

npm安装不工作:EADDRINUSE

我无法使用npm install没有办法多less我试过。 npm:2.14.12 节点:v4.2.4 这是我得到的错误: $ npm install –no-bin-links npm ERR! fetch failed https://registry.npmjs.org/gulp/-/gulp-3.9.0.tgz npm WARN retry will retry, error on last attempt: Error: connect EADDRINUSE 23.235.43.162:443 – Local (undefined:undefined) npm ERR! fetch failed https://registry.npmjs.org/gulp/-/gulp-3.9.0.tgz npm WARN retry will retry, error on last attempt: Error: connect EADDRINUSE 23.235.43.162:443 – Local (undefined:undefined) npm ERR! Windows_NT 10.0.10586 […]

node.js在没有iisnode的窗口上自主托pipe

对不起,如果它是重复的,但我找不到它。 我有一个.net mvc应用程序在Windows Server 2012 R2与IIS 8.5。 我将在我的应用程序中使用一些套接字操作。 所以我用socket.io在node.js中编写了一个应用程序。 我想在同一台服务器上托pipe我的节点应用程序。 我发现的所有文章都说“使用iisnode”。 但由于可能的问题,我不确定。 特别的性能问题让我怀疑。 我的问题是: 我应该相信iisnode在Windows上提供节点应用程序吗? 或者有什么其他的select来在没有iisnode的窗口上托pipenode.js应用程序? 我已经读过 在Windows的IIS中安装和运行node.js应用程序 – 你疯了吗? , https://tomasz.janczuk.org/2011/08/hosting-nodejs-applications-in-iis-on.html和https://tomasz.janczuk.org/2013/01/hosting-socketio-websocket-apps -in-iis.html博客文章。

用npm(3.10.3)Win 10 nodejs(6.6)不能安装cordova

我安装了nodejs 6.6并想安装Cordova。 所以在命令行中input: npm install -g Cordova 如果失败。 我在网上search,发现如下: npm config set proxy http://user:password@url:port npm config set https-proxy http://user:password@url:port npm config set strict-ssl false 我再次尝试它仍然失败; 所以我再次search无法安装任何与npm ECONNRESET没有代理 并执行如下: npm config set registry http://registry.npmjs.org/ npm cache clean 仍然安装失败。 这是从家庭连接的私人电脑。 我最后一次尝试: C:\Users\An>npm config set proxy C:\Users\An>npm cache clean npm WARN invalid config proxy="" npm WARN invalid config […]

NodeJS,Windows,wmic stdin

我在NodeJS中遇到了Windows程序WMIC.exe(用于查询Windows Management Instrumentation)的问题。 我可以产生一个wmic.exe进程,但它不会输出任何东西或接受任何input。 但是,如果我将stdin设置为null,它将正确运行,我会收到输出。 var spawn = require('child_process').spawn; var wmic = spawn('wmic', [], {stdio: ['ignore']}); wmic.stdout.on('data', function(data) { console.log('Data received:' + data); }); wmic.on('close', function(code) { console.log('Spawned process ended with code: ' + code); }); 我想交互使用wmic.exe,它支持,保持打开,所以我不必为每个WMI查询重复启动它。 其他人也有与wmic.exe类似的问题,但他们只想捕获一个单一的查询输出,所以有一个null stdin无关紧要。 更新 如果我做以下… var spawn = require('child_process').spawn; var wmic = spawn('wmic', []); wmic.stdout.on('data', function(data) { console.log('Data received:' […]

如何获得Windows上的rsync命令?

我正在使用飞行计划来在生产环境中部署我的node.js应用程序。 这是我的flightplan.js文件。 var plan = require('flightplan'); plan.target('default', { host: {{host}}, username: {{ username }}, port: '2222', agent: process.env.SSH_AUTH_SOCK }); plan.local(function(local) { local.log('Copy files to remote hosts'); var filesToCopy = local.exec('git ls-files', { silent: true }); // rsync files to all the destination's hosts local.transfer(filesToCopy, '~/www/'); }); 当我跑苍蝇默认停止并说 “rsync”不被识别为内部或外部命令 我如何获得rsync命令? 我正在运行的Windows 8。

不能创build/ dev / stdout:没有这样的设备或地址

我想通过节点运行一个shell命令并捕获stdout的结果。 我的脚本在OSX上正常工作,但不在Ubuntu上。 我已经将问题和脚本简化为以下节点脚本: var execSync = require('child_process').execSync, result = execSync('echo "hello world" >> /dev/stdout'); // Do something with result 结果是: / bin / sh:1:不能创build/ dev / stdout:没有这样的设备或地址 我试图用/dev/stdout /dev/fd/1replace/dev/stdout 我已经尝试将shell更改为bash … execSync('echo …', {shell : '/bin/bash'}) 就像我说的,上面的问题被简化了。 真正的脚本接受作为参数的结果应写入文件的名称,所以我需要通过提供对stdoutstream作为文件描述符(即/dev/stdout访问来解决此问题。 我怎样才能通过节点执行命令,同时给命令访问它自己的标准输出stream?