Tag: url

不能在Node.js上使用URL模块,不能调用未定义的方法“parse”

我试图从URL中获取参数,例如: http://localhost:8888/?name=test 要获得name参数,我看到了一些使用url模块的示例: var url = require('url'); var urlParts = url.parse(request.url, true); var query = urlParts.query; 所以,首先我运行这个命令npm install url ,也依赖于package.json文件,但我总是得到这个错误: TypeError: Cannot call method 'parse' of undefined at C:\Users\Administrator\git\test\app.js:28:7 以前有人遇到这个问题吗?

Express路由与AngularJS路由冲突。

在Express中有以下性质的路由代码: app.get("/profile/:param", function (req, res) 这与AngularJS提供的path一致。 例如,当载入nature /profile/someparam#view1的Angular视图时,新的URL模式被Express(它假定它是/profile/<someparam>types) /profile/<someparam> 。 这导致与view1关联的控制器被无限调用,从而导致页面崩溃。 我如何解决这个问题?

节点:如何避免在视图中对URL进行硬编码?

我需要避免在Node应用程序(代码或视图)中编写硬编码的URls。 有包吗? 现在我用Jade编写: a(href='/account/profile') Profile文件a(href='/account/profile') Profile文件URL是硬编码的。 我需要这样的: a(href=links.accounts.profile()) Profile 当我更改url时,这将非常有用。 我需要能够从一个configuration文件,而不是所有的意见更改url…

复杂的URL查询string规范

我一直在使用Node.js的查询parsing器进行试验,并且能够将一些非常复杂的查询parsing为深度嵌套的对象和数组。 一些例子: 查询string: 1) '?$or=foo&$or=bar' 2) '?$or[foo]=bar' 3) '?$or[0][foo]=bar&or[1][bar]=baz' 4)'?$or[0][foo]=bar&or[1][bar][]=baz&or[1][bar][]=bing&or[1][bar][]=bang' 节点将其parsing为: 1) { $or: ['foo', 'bar'] } 2) { $or: { foo: 'bar' } } 3) { $or: [ { foo: 'bar' }, { bar: 'baz' } ] } 4) { $or: [ { foo: 'bar' }, { bar: ['baz', 'bing', 'bang'] } ] } […]

快捷链接外部url

我有一个快速的应用程序,我有一个模板,吐出一个链接,如: index.jade: var url ='google.com' a(href =“{{= url}}”){{= url}} 但是,它会生成以下链接: HTTP://localhost/google.com 并不是: google.com 我真正需要的是创build一个链接到外部url。 有没有办法做到这一点? 谢谢。

如何使参数化的Express路线有或没有尾部反斜杠?

我有一个非常简单的应用程序,将始终使用以下URL结构进行访问: www.myapplication.com/some/deep/nested/1234567890/ 1234567890是用户的帐号,每个用户可能不同。 目前,如果最后一个反斜杠停止,则无法访问应用程序: www.myapplication.com/some/deep/nested/1234567890 实际上,如果通过以下方式访问应用程序,url将发生变化: www.myapplication.com/1234567890 鉴于以下在我的app.js中: app.use('/', api); app.use('/:user', express.static(path.join(__dirname, 'dist'))); 在哪里api是一个简单的快速路由器本身,我的React应用使用jQuery使用req.params中的用户号码调用,我怎样才能让应用程序访问使用后面的反斜杠或不? 我已经尝试了各种方法,如: app.use('/:user/?', express.static(path.join(__dirname, 'dist'))); 要么 app.use(express.static(path.join(__dirname, 'dist'))); 后者阻止url被截断,但只能在没有用户帐号的情况下工作,这显然是必要的: www.myapplication.com/some/deep/nested/ 如果我访问www.myapplication.com/some/deep/nested/1234567890或www.myapplication.com/some/deep/nested/1234567890/ URL不被截断,但我得到Cannot GET /1234567890或Cannot GET /1234567890/ 。 我也试过洗牌,无济于事: app.use('/:user', express.static(path.join(__dirname, 'dist'))); app.use('/', api);

Nodejs + Q promise +方法根据urltypes返回

我使用节点js作为后端,也使用q promise包。 问题:我正在尝试获取第三方产品详细信息。 1. www.abcd.com 2. www.xyz.com – 这个方法我在后台处理。 可能的url: ?本地主机:8080 /searchtypes= “ABCD”; ?本地主机:8080 /searchtypes= “XYZ”; 本地主机:8080 /search; 如果上面的URLtypes是abcd,则意味着需要search一些不同的thridparty(www.abcd.com)http url; 如果上面的URLtypes是xyz,则意味着需要search其他一些不同的thridparty(www.xyz.com)http url 如果上面的URL没有获得types意味着需要searchwww.abcd.com,如果结果find意味着然后返回响应,如果结果未find意味着需要调用www.xyz.comurl,然后返回响应。 (注意 – 这里有两个第三方API需要调用) 码: router.get('/search', function(req, res, next) { if (!( typeof req.query === 'undefined' || req.query === null || req.query == "")) { var type = req.query; } var spec = […]

带有express和webpack的Google API Node.js客户端

我正在学习如何使用快递。 我的最终目标是通过Google Analytics(分析)中的react / d3和一些数据构build仪表板。 现在我有一个当地的项目,包括react-webpack-babel。 我想使用google-api-nodejs-client来调用Google Analytics。 我正在尝试遵循本教程: http : //www.2ality.com/2015/10/google-analytics-api.html,但无法运行我的项目。 在我的terminal有一堆的错误,这里是主要的一个: [1] /Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/transformation/file.js:91 [1] throw new ReferenceError("Unknown option: " + key); [1] ^ [1] [1] ReferenceError: Unknown option: presets [1] at File.normalizeOptions (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/transformation/file.js:91:15) [1] at new File (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/transformation/file.js:70:22) [1] at transform (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/transformation/index.js:18:14) [1] at Object.transformFileSync (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/api/node.js:74:10) [1] at compile (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/api/register/node.js:73:20) [1] at normalLoader […]

刷新浏览器后,包含“hypen”的URL不会经过angular度$ routeProvider.when(),而直接请求服务器

我正在使用MEAN Stack和用于开发项目的html模板。 由于我使用的是jade,$ routeProvider的所有.when()都通过服务器,然后呈现。 事情是绝对没有问题,直到最近我添加$ httpProvider.interceptor用于validation每个请求。 基本上,我开始使用基于JWT令牌的身份validation,并在向服务器请求任何东西之前,我在拦截器中附加了“授权”标头。 而第一个保护apis的中间件,我正在validation“授权”头中存在的令牌。 如果存在,则继续,否则发送授权错误。 现在,正如问题的标题所述。 为了增加可读性,我在两个单词之间包含了一些包含hypen( – )的 URL。 例如: .when('/firstPart/secondPart1-secondPart2/thrirdPart', { templateUrl: '/path/to/file' }) 这个url工作正常,如果用户经历了正常的stream量到这个url。 当用户进入这个页面并点击浏览器的刷新button时出现问题,因为他得到一个错误“授权头未设置” 我做了一些什么和为什么发生这样的研究,我发现AngularJS的答案不拦截来自地址栏的直接请求 。 据了解,对于这个答案和其他一些我明白,在刷新浏览器直接请求服务器,并没有通过angular路由,因此,连接到每个请求标头的授权标头的拦截器不会被调用。 正如同样的链接build议,解决方法是,如果authenticationvalidation失败,打电话给'/' ,我不希望这样做,因为用户刚刚刷新页面,他必须得到相同的页面,因为他在他精神压抑之前。 我困在这里如何做到这一点。 另外,还有另一个令人难以置信的是,如果我删除了'hyphen'(-) ,并使其成为一个单词即.when('/firstPart/secondPart1SecondPart2/thrirdPart', { templateUrl: '/path/to/file' }) ,即使用户点击刷新button,一切都按预期工作。 首先经过angular路由器和拦截器附加Authorization头,然后对该模板进行获取请求。 想知道,在URL中使用连字符有什么问题吗? 但是,我不想删除连字符,因为我已经在很多地方使用了连字符,而且我也觉得它有好处-两个词需要在URL中一起显示,而不是使它们成为骆驼。 S,最后我有两个问题:1.如何在刷新之前加载用户所在的页面,而不是redirect到'/'或login url 。 2.上面解释的问题只出现在连字符( – )URL中,URL中有'-'的问题是什么。

为http请求延迟一个for循环

我刚刚开始使用JS和Node.js。 我试图build立一个简单的刮板作为第一个项目,使用Node.js和一些模块,如request和cheerio 。 我想在每个包含到数组中的域的每个http请求之间添加一个5秒的延迟。 你能解释一下怎么做吗? 这是我的代码: var request = require('request'); var arr = [ "http://allrecipes.com/", "http://www.gossip.fr/" ]; for(var i=0; i < arr.length; i++) { request(arr[i], function (error, response, body){ console.log('error:', error); console.log('statusCode:', response && response.statusCode); console.log('body:', body); }); }