Tag: express

在节点中安全地处理错误的JSON.parse()

使用节点/快递 – 我想从请求头获得一些JSON,但我想安全地做到这一点。 如果由于某种原因,它不是有效的JSON,没关系,它可以只是返回false或其他什么,它只会拒绝请求,并继续前进。 问题是如果它不是有效的JSON,则会引发语法错误。 通常我想要一个语法错误炸毁,但不是在这种情况下。 var boom = JSON.parse(req.headers.myHeader); 我是否刮了堆栈,并检查来自特定模块的错误parsing调用,如果是这种情况,它会忽略它? 这似乎有点疯狂。 当然有更好的方法。 编辑:我知道try / catch块是处理此错误的一种方式,但它是节点应用程序中的最佳方式? 这样可以阻止节点吗?

Node.js JSON.stringify()导致“ 在输出。 无法用Jqueryparsing

我正在使用Node.js(使用Express.js)将JSON数据对象从服务器传递到客户端视图。 当我把JSON对象直接渲染到视图中时,我得到了页面上显示的JSON对象(本作品): pageprovider.findAllTag( function(error, pages){ res.send(pages); }) 而我的输出看起来像这样(更大,很多嵌套obj) {"green":{"title":"green","pagesContaining": ""}} 当我尝试把它传递给我的Jade View如下所示: pageprovider.findAllTag( function(error, tagsJSONObj){ //res.send(pages); pageprovider.findAll( function(error, pages){ res.render('search_tags.jade', { locals: { title: 'Search by Tags', 'pages': pages, tagsJSON: JSON.stringify(tagsJSONObj) //pass the tags data as a JSON obj } }); }) //pageprovider.findAll }) //pageprovider.findAllTag 问题 当我将“tagsJSON”传递给视图时,输出包括html实体: var obj = jQuery.parseJSON( "{"name": 'value'}"); JQuery抛出一个错误,因为它不喜欢'“'。我怎样才能让节点给我正确的报价,或让jQuery接受这种格式? 有什么想法吗?

无法通过浏览器访问mongodb – 它看起来像试图通过本地驱动程序端口上的HTTP访问MongoDB

我打开terminal并input以下命令 sudo mongod 然后输出 [initandlisten] waiting for connections on port 27017 我打开另一个terminal并进入 sudo mongo 它打开mongo shell并提示mongo命令,但是当我到localhost / 27017时,我收到以下消息: It looks like you are trying to access MongoDB over HTTP on the native driver port. 我使用express创build了一个简单的nodejs应用程序,当我POST数据时,似乎mongodb挂起。 这是我在我开始我的快速申请的terminal收到的消息,并从来没有发布数据的页面。 所以我相信问题在于mongo,但是我不知道。 POST /info 200 120002ms 这是我的快递代码 var Info = require('../models/info'); var path = require('path'); var fs = require('fs'); var […]

Heroku + Cloudflare完全免费的SSL

尝试使用Cloudflares新的免费通用SSL在Heroku上获得完全免费的SSL 阅读这篇文章: http : //mikecoutermarsh.com/adding-ssl-to-heroku-with-cloudflare/ 这似乎表明现在Cloudflare可以免费提供SSL。 我采取的步骤: 使用Cloudflare设置我的DNS(免费帐户) 将我的域名转发到我的herokuapp(CNAME example-app.com – > example-app.herokuapp.com) 将Cloudflare SSL选项设置为“完全SSL” 将我的域添加到我的heroku应用程序 用这个快递中间件强制https: app.use(function(req, res, next) { if (req.headers['x-forwarded-proto'] != 'https') { res.redirect('https://' + req.headers.host + req.path); } else { return next(); } }); heroku域http://example-app.herokuapp.com正常工作,并redirect到https://example-app.herokuapp.com ,绿色锁和所有。 http://example-app.com和https://example-app.com都不起作用。 浏览器选项卡图标只是保持旋转,永远不会解决。 任何想法如何得到这个工作? 这甚至有可能吗? *更新 这看起来实际上是可能的。 从CloudFlare支持: 嗨比尔, 基本上,只要“来源”支持SSL连接,您就可以在CloudFlare中使用完全SSL。 西蒙 CloudFlare今天发布了这篇博文: https : //blog.cloudflare.com/universal-ssl-be-just-a-bit-more-patient/ 我的网站已经开始解决,但得到了“您的连接不是私人的”信息,就像在博客文章的“错误您可能会看到”部分。 […]

Node.js服务器重新启动会丢弃会话

我正在使用快速和连接中间件function齐全的用户注册/身份validation系统。 app.use(express.session({store: require('connect').session.MemoryStore( {reapInterval: 60000 * 10} ) })) 唯一的问题是,每次执行服务器重新启动时会话都会丢失。 https://github.com/remy/nodemon – 并且nodemon每次检测到文件更改时都会重新启动node.js。 我怎样才能持久会议?

如何在Express应用程序中使用npm安装的jQuery?

我有一个node.js + express应用程序,我用npm安装了jQuery。 在我使用的app.js文件中 var jquery = require('jquery'); 在html文件头我包括JavaScript使用jQuery,我得到`jQuery没有定义'。 这是秩序吗?还是我错过了什么?

Node.js是构build完整网站的好select吗?

我想知道是否使用Node.js(express.js)是一个完整的网站的最佳select。 我一直在使用Rails + Node.js,想知道如果这仍然是最好的select,或者如果我应该完全移动到Node.js。 有没有完全用node.js构build的网站? 我想,它必须缺乏Rails提供的许多东西。

用expressjs强制SSL 3

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

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

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

使用Express / Redis进行会话存储时,“会话”未定义

我正在尝试在快速应用程序中使用redis进行会话。 我做了以下几点: var express = require('express'); var RedisStore = require('connect-redis')(express); app.configure('development', function(){ app.use(express.session({ secret: "password", store: new RedisStore({ host: "127.0.0.1", port: "6379", db: "mydb" }) })); 后来,在我的应用程序中,如果我做了这样的事情: var whatever = req.session.someProperty; 我得到: 无法读取未定义的属性“someProperty” 这表明req.session是未定义的(我可以从configuration节中的console.log条目中看到这一点) 我肯定有redis运行,并可以看到我的应用程序连接到它最初(使用redis-cli显示器)