Tag: url

节点请求抛出:错误:无效的URI“www.urlworksinbrowser.com”或options.uri是必需的参数

我在Ubuntu 12.04上使用Node v0.10.11。 我不知道我错过了什么使一个urlstream的请求模块工作。 这个程序正在尝试去邮件列表网站,find每个月的下载链接,然后每个月下载一次。 mikeal的自述文件中提到:“第一个参数可以是一个url或一个选项对象,唯一需要的选项是uri,其他所有的都是可选的uri || url – 来自url.parse()的完全限定的uri或parsing的url对象。 如果我打电话给url.parse(www.targeturl.com),我得到[错误:options.uri是必需的参数]如果我不使用url.parse,我得到[错误:无效的URI“www.freelists.org / archive / si-list / 06-2013“](这个链接在我的浏览器中工作得很好) 我把代码缩减到了42行。 任何意见欢迎 var request = require('request'), url = require('url'), stream = require('stream'), cheerio = require('cheerio'), // a reduced jQuery style DOM library Transform = require('stream').Transform var DomStripStream = function(target) { this.target = target; stream.Transform.call(this,{objectMode: true}); } DomStripStream.prototype = […]

Uncaught TypeError:URL不是使用WHATWG URL对象支持电子的构造函数

我正在尝试使用此处的 WHATWG URL对象支持来读取文件 我得到这个错误:Uncaught TypeError:URL不是一个构造函数 这里是我的代码: var fs = require("fs"); const { URL } = require('url'); var dbPath = 'file://192.168.5.2/db/db.sqlite'; const fileUrl = new URL(dbPath);

Express.js中的默认路由

我正在写一个应用程序与node.js和expression。 我已经设置了一个默认路由,如下所示: app.get('/', function(req, res){ res.sendfile('./views/index.html'); }); 当我goto / localhost:port / 但在URL后面input任何东西时,/ localhost:port / blah我得到了404错误,这是有道理的。 我想设置一个默认路由,这样无论我在localhost:port /后面input什么URL,它都应该得到相同的html文件。 我试着改变/ *: app.get('*', function(req, res){ res.sendfile('./views/index.html'); }); 但是当我这样做后,我开始在控制台中得到这个错误,什么也没有显示: 未捕获的SyntaxError:意外的标记< 在我所有的Javascript文件中::3000 / scripts / myscript.js:1 不知何故,我的JavaScript文件显示HTML的内容 ===编辑==== 我用这个,它为一级url工作正常:像loclhost:端口/等等 app.use(function(req, res){ res.sendfile('./views/index.html'); }); 但是当URL是多层时,我看到与前面描述相同的问题localhost:port / blah / foo这里的问题是路由器正在寻找/ blah文件夹下的所有JavaScript和CSS文件的公共目录,这样做不存在。 它将返回默认的HTML文件。 我该如何解决? ==================编辑张贴整个代码=========================== ============== var http = require('http'); var express = […]

Node.js:在win1251字符集中发送http请求

如何在win1251字符集中发送以下查询? var getData = querystring.stringify({ type: "тест", note: "тест1" }), options = { host: config.host, path: config.path + '?' + getData, method: 'GET' }; http.request(options, function (res) {…}).end();

如何处理快递中的非UTF-8编码的url

我们有一个节点js应用程序,我们最近从IIS 7上运行(通过IIS节点)转移到在Linux(Elastic Beanstalk)上运行。 由于我们切换,我们已经得到了很多非UTF-8url被发送到我们的应用程序(主要来自抓取工具),例如: Bj%F6rk IIS正在转换为Björk 。 这现在正在传递给我们的应用程序,我们的Web框架(快递)最终呼吁 decodeURIComponent('Bj%F6rk'); URIError: URI malformed at decodeURIComponent (native) at repl:1:1 at REPLServer.self.eval (repl.js:110:21) at repl.js:249:20 at REPLServer.self.eval (repl.js:122:7) at Interface.<anonymous> (repl.js:239:12) at Interface.emit (events.js:95:17) at Interface._onLine (readline.js:203:10) at Interface._line (readline.js:532:8) at Interface._ttyWrite (readline.js:761:14) 有没有推荐的安全的方式,我们可以执行相同的转换为IIS之前发送的urlstring表示? 铭记在心 我们正在接收这些严重编码的URL和请求 有一种方法来解码他们使用不赞成的unescape JavaScript函数和 这些url的大部分请求都来自Bing Bot,我们希望尽量减less对search排名的不利影响。 我们真的应该为所有传入的url做这个吗? 我们应该关注哪些安全或性能问题? 我们是否应该担心在不久的将来会被删除? 有没有更好/更安全的方法来解决这个问题(是的,我们读过的MDN文章链接到上面)

Nodejs:redirecturl

我试图以这种方式在node.js中redirect我的应用程序的url: // response comes from the http server response.statusCode = 302; response.setHeader("Location", "/page"); response.end(); 但是当前页面和新页面混在一起,看起来很奇怪:| 我的解决scheme看起来完全合乎逻辑,我不知道为什么发生这种情况,但如果我重新加载页面redirect后,它的工作原理。 无论如何,在节点中执行HTTPredirect的正确方法是什么?

如何从JavaScript中的URL中提取主机?

捕获域直到结束字符$, \?, /, : 。 我需要一个正则expression式来捕获所有这些domian.com 。 domain.com:3000 domain.com?pass=gas domain.com/ domain.com

我如何把对象的amazon s3使用presigned url?

我正在尝试使用签名的url将图片上传到s3存储桶。 以下是我的桶政策: { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::12345678:user/myuser", "arn:aws:iam::12345678:root" ] }, "Action": [ "s3:List*", "s3:Put*", "s3:Get*" ], "Resource": [ "arn:aws:s3:::myBucket", "arn:aws:s3:::myBucket/*" ] } ] } 我正在从服务器生成签名的url,如下所示: var aws = require('aws-sdk'); aws.config = { accessKeyId: myAccessKeyId, secretAccessKey: mySecretAccessKey }; var s3 = new aws.s3(); s3.getSignedUrl('putObject', { Bucket: […]

没有端口号的nodejs域

我已经在VPS(Ubuntu 10.04)上部署了我的nodejs应用程序。 我已经在一个子域(subdomain.myapp.com:3000)上托pipe它,我只有一个IP地址 默认情况下,Apache默认使用80端口。 我只是希望我的应用程序应该在3000端口上运行,但URL应该是(subdomain.myapp.com) 这是可能的nodejs或我必须调整我的虚拟主机或Apache的文件。

在Express中路由时,应用层和路由器级中间件有什么区别?

在快速文档中 ,它说: 应用程序级中间件绑定到一个express实例,使用app.use()和app.VERB()。 路由器级中间件就像应用级中间件一样工作,除了它们绑定到express.Router()一个实例外。 上例中在应用程序级别创build的中间件系统可以使用以下代码在路由器级别进行复制。 在Express生成器提供的应用程序中,我在主app.js看到: var routes = require('./routes/index'); app.use('/', routes); 而在./routes/index.js ,我看到这个: var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); module.exports = router; app.use传递给router.get而不是简单地使用app.get的目的是什么? 一般来说, app.VERB和router.VERB在路由方面有什么区别?