Articles of node.js

请求期间“套接字挂断”错误

我尝试通过node.js版本0.8.14的http模块向某个站点(而不是我自己的站点)发出GET请求。 这是我的代码(CoffeeScript): options = host: 'www.ya.ru' method: 'GET' req = http.request options, (res) -> output = '' console.log 'STATUS: ' + res.statusCode res.on 'data', (chunk) -> console.log 'A new chunk: ', chunk output += chunk res.on 'end', () -> console.log output console.log 'End GET Request' req.on 'error', (err) -> console.log 'Error: ', err req.end() 在这个操作过程中出现以下错误:{[Error:socket […]

在Express Node.js中禁用etag标题

我们需要从Node.js Express应用程序中的所有HTTP响应中删除etag头文件。 我们有一个用Express编写的Web服务API,当我们发送etags并且客户端发回了if-none-match头部时,客户端会看到意外的结果。 我们尝试了app.disable('etag')和res.removeHeader('etag') ,但都没有工作。 应用程序无论发送标题。 是否有任何其他方式在所有的回应中禁用此标题?

我如何在node.js中创build一个非阻塞的asynchronous函数?

我如何创build一个非阻塞的asynchronous函数? 下面是我正在努力实现,但我的程序仍然阻止… var sys = require("sys"); function doSomething() { sys.puts("why does this block?"); while(true); } setTimeout(doSomething,0); setTimeout(doSomething,0); setTimeout(doSomething,0); sys.puts("main");

用expressjs强制SSL 3

我正在运行一个没有代理和使用SSL的node.js express 3服务器。 我想弄清楚如何强制所有连接通过https。 谷歌search向我显示这一点: https://groups.google.com/forum/#!topic/express-js/Bm6yozgoDSY 目前没有办法强制httpsredirect,虽然这似乎有点奇怪的解决办法。 我们有一个只有https的应用程序,我们只有一个简单的〜4行节点http服务器redirect,没有什么奇特的 这是我需要的,但他没有说这四条线是什么。 我们如何做到这一点? 谢谢。

用于Bower组件的Express.js路由

我已经改变了我的Express.js项目使用鲍尔安装组件。 所有组件都安装在/ components(/components/jquery/jquery.js …等)下。 我也创build了自己的路由器,如下所示: app.get('/', routes.index); // main page app.get('/p/:name', routes.p); //redirect routes app.get('/api/contacts', api.contacts); //look at all app.get('/api/contact/:id', api.contact); //look at one app.post('/api/contact', api.add); //add contact app.put('/api/contact/:id', api.edit); //edit&update contact app.delete('/api/contact/:id', api.delete); //delete contact 没有路由/组件,因此http://my.project/components/jquery/jquery.js回来了一个Cannot GET /components/jquery/jquyery.js 有人可以让我知道什么是最好的方式添加路由/组件下的所有组件?

捕捉Browserifyparsing错误(独立选项)

我正在使用gulp + browserify来构build和打包我的JavaScript库。 现在有一件事困扰我:我正在运行一个简单的服务器,通过grep进行开发。 这工作正常,但只要我的JavaScript包含语法错误,browserify抛出一个错误导致服务器停止。 我使用的browserify代码(请注意,我添加了一个error handling程序): browserify("./src/main.js") .bundle({standalone: "SomeName", debug: false}).on('error', notify.onError({ message: "Error: <%= error.message %>", title: "Failed running browserify" }) ); 现在来了一个有趣的部分:当我删除独立设置(和我的JS语法不正确),error handling程序触发。 但是,当我使用这个独立的设置时,error handling程序不会触发(导致服务器由gulp停止启动) 有谁知道如何处理这个问题? 我总是可以手动validation我的js文件,但想避免这种解决方法

Node.js主机名/ IP不匹配证书的名称

我有代码: var r = require('request'); r({ method: 'POST', url: 'https://api.dropbox.com'}, function() { console.log(arguments) } ) 当我在节点0.9.4的桌面上运行它时,我在控制台中得到这个: { '0': [Error: Hostname/IP doesn't match certificate's altnames] } 当我使用Node 0.6.12在Netbook上运行它时,它的所有工作都没有错误(302响应 – 我认为是正确的)。 问题Node.js主机名/ IP不符合证书altnames ,Rojuinex写道:“是啊,浏览器问题…对不起”。 “浏览器问题”是什么意思? UPD。 在Node v0.8上回滚之后,此问题得到解决

NodeJS + CoffeeScript,根据请求渲染coffeescript编译的js

我想要做的是添加以下给我已经运行咖啡书面服务器 app.get '/test.js', (req, res) -> render coffee somecoffeefile.coffee 像NodeJS,Express和Coffeescript这样的可能吗? 谢谢! 何塞

node.js glob模式用于排除多个文件

我正在使用npm模块节点glob 。 这段代码recursion地返回当前工作目录中的所有文件。 var glob = require('glob'); glob('**/*', function(err, files) { console.log(files); }); 样本输出: [ 'index.html', 'js', 'js/app.js', 'js/lib.js' ] 我想排除index.html和js / lib.js。 我试图用负模式排除这些文件'!' 但没有运气。 有没有办法通过使用模式来实现这一点?

在nodejs项目中使用es6类的正确方法

我希望能够使用nodejs 4.1.2的酷es6类function 我创build了以下项目: a.js: class a { constructor(test) { a.test=test; } } index.js: require('./a.js'); var b = new a(5); 你可以看到我创build一个简单的类,它的构造函数获取一个参数。 并在我包括我需要这个类,并创build一个新的对象基于该类。 很简单..但仍然我得到以下错误: SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:413:25) at Object.Module._extensions..js (module.js:452:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require […]