Tag: 表示

Node.js – 使用Express获取原始请求主体

当我使用Express时,我的代码是: app.use(express.bodyParser()); 我将如何获得原始请求的身体 ?

虚拟主机与独立的node.js服务器

有没有办法使用node.js服务器(即在一个IP下托pipe多个域)的虚拟主机?

npm安装不在GitHub上安装最新版本

我有一个叫做'sails-mongo'的模块,我想使用下面的命令将它更新到最新版本: npm update sails-mongo –save 我也试过卸载,然后再次安装。 我尝试了sails-mongo@latest和sails-mongo@beta 。 问题 :GitHub上的当前版本( master )package.json( https://github.com/balderdashy/sails-mongo/blob/master/package.json )文件有: "dependencies": { "async": "~0.2.9", "lodash": "~2.4.1", "mongodb": "1.4.2", "waterline-errors": "~0.10.0" }, 并在正在更新的一个 "dependencies": { "async": "0.2.10", "underscore": "1.5.2", "underscore.string": "2.3.3", "mongodb": "~1.3.23" }, 我得到主分支的唯一方法是使用命令npm install git+https://github.com/balderdashy/sails-mongo 为什么不sails-mongo@latest安装master分支?

如何解码一个节点应用程序中的谷歌OAuth 2.0 JWT(OpenID连接)?

我有一段时间在这里尝试使用谷歌OAuthauthentication我的节点快递应用程序中的用户。 我可以成功地完成OAuth,它将返回如下响应: { access_token: 'token string', id_token: 'id.string', expires_in: 3599, token_type: "Bearer" } 这一切都是有道理的,但我不能为我的生活弄清楚如何解码智威汤逊。 所有这些我都没有经验,所以这对我来说有点陌生。 按照此处列出的说明: https : //developers.google.com/accounts/docs/OAuth2Login#validatinganidtoken我试图在我的节点应用程序本地解码智威汤逊。 我在我的节点环境中安装了https://github.com/hokaccha/node-jwt-simple 。 而且我很确定我需要使用这个证书( https://www.googleapis.com/oauth2/v1/certs )来解码它,但是我在这里有点遗憾。 我真的不知道如何将证书放入我的节点应用程序,之后如何与node-jwt-simple一起使用它。 而且我也不是很了解我怎么知道什么时候需要提交新的证书,而不是使用caching的证书。 有人在这里有一些经验,可以帮助我吗? 谢谢你的帮助。 在这一点上,我完全不知所措。 **更新** 所以我取得了一些进展…有点。 通过调用jwt.decode(id_token,certificate,true); 我能够成功解码令牌。 即使证书var是一个空对象{}。 这留下了三个问题。 1:使用谷歌的url将证书join我的快递应用的最佳方式是什么? 2:我怎么知道什么时候需要拉一个新的版本? 3:看起来像是通过noVerify(jwt.decode中的第3个参数)是一个可怕的想法。 我怎样才能在没有通过的情况下工作? 它看起来也许jwt-simple期待hs256和令牌使用rs256。 再一次,我在这方面超级经验不足,所以我可能会在这里的基础。 *更新*感谢来自纳特的帮助,我能够得到这个工作! 我想我已经尝试了每个JWT和JWS节点模块。 我最终得到的结果如下:我发现我看到的所有模块都不像我想要的那样。 我创build了以下用于解码id_token的jwt解码助手方法,这样我就可以从头文件中获取孩子了。 module.exports = { decodeJwt: function (token) { var segments = […]

Node.js + Express上的多个视图path

我正在使用Express Framework在Node.js上编写一个CMS。 在我的CMS上,我有几个用户,页面等模块 我希望每个模块都将他的文件放在单独的文件夹中 , 包括视图文件 。 任何人都知道我该怎么做到这一点? 我使用swig作为我的模板引擎,但是如果它能帮上忙 ,我可以把它replace成别的东西。

TypeError:请求path包含非转义字符

我尝试使用以下命令来安装node.js模块: npm install express 但我得到这个错误: npm http GET https://registry.npmjs.org/express npm ERR! TypeError: Request path contains unescaped characters. npm ERR! at Agent.request (_http_agent.js:264:11) npm ERR! at TunnelingAgent.exports.request (http.js:52:22) npm ERR! at TunnelingAgent.createSocket (/usr/local/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/index.js:117:25) npm ERR! at TunnelingAgent.createSecureSocket [as createSocket] (/usr/local/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/index.js:184:41) npm ERR! at TunnelingAgent.addRequest (/usr/local/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/index.js:80:8) npm ERR! at new ClientRequest (_http_client.js:112:16) npm ERR! at Agent.request (_http_agent.js:279:10) […]

在ExpressJS中将variables传递给JavaScript

我完全失去了这一点; 我正在使用NodeJS来获取JSON,我需要将该variables传递给我的页面,并使JavaScript使用数据。 app.get('/test', function(req, res) { res.render('testPage', { myVar: 'My Data' }); 这是我的Express代码(testing非常简单); 现在使用EJS我想收集这些我知道在页面上呈现的数据很简单 <%= myVar %> 但我需要能够收集这些数据在JavaScript(如果可能在.js文件中),但现在只是要显示在一个警报框中的variables我已经尝试 在Jade中它就像alert('!{myVar}')或!{JSON.stringify(myVar)} 。 我可以在EJS中做类似的事吗? 我不需要任何像<input type=hidden>的字段,并在javascript中使用字段的值。 如果有人可以帮助非常感激

在Node.Js / Express应用程序中存储数据库configuration的最佳方法

将数据库configuration(用户名,密码)存储在运行在node.js / Express上的开源应用程序中的最佳方式是什么? 两个具体问题: 例如,我应该把它放在/lib文件夹中的一个单独的config.js文件中,而不要将它包含在GitHub公开的主存储库中? 为了包含configuration,是否需要它的文件就像require('./config.js')一样简单,还是有更好的方法呢? PS不好意思,如果问题看起来有点简单,或者不是很好的公式,但我只是开始:)

Express sendfile()vs render()

我尝试了res.render('index.html')和res.sendfile('index.html'),他们似乎都在做同样的事情。 我没有发现快速文档非常有帮助。 两者有什么区别?

在Jade中使用HTML被认为是不好的做法?

翡翠看起来像一个很酷的模板引擎,我想我会用它来做我的下一个项目。 但是,有些语法对我来说没有意义。 你怎么做到这一点: ul li a(href="#book-a") Book A 代替: <ul> <li><a href="#book-a">Book A</a></li> </ul> 我明白你保存了一些打字,但对我来说似乎不太可读。 我注意到Jade的实时演示,通过正确的html通过翻译。 所以做这样的事情会被认为是不好的做法: <div class="someClass"> <h3> #{book.name} </h3> </div>