Tag: 表示

快速会话:为什么在设置会话信息之前执行redirect?

还有一个“我刚刚开始学习node.js / express,现在我在这里卡住了”人。 我试过寻找答案,但我已经到了死胡同。 这是我的第一个Stackoverflow问题,所以请告诉我,如果我做了错误或非常规的事情。 我正在尝试创build一个POST请求,将一个用户对象保存到一个快速会话(在MongoDB上),并将您redirect到处理会话信息的URL。 问题是,在设置标题之前用户被redirect,并给出以下内容: Error: Can't set headers after they are sent. 这是我的代码。 我知道这是很多..对不起。 router.post() // Handler for POST requests from root page (/) router.post('/', function(req, res) { console.log("Router: A POST request for: \"/\" has been called!"); var username = req.body.username; var password = req.body.password; // Connect to database mongoose.connect(dbAddress); var db […]

捍卫一个非幂等后期操作,以防止在Node.js中快速调用?

简单的问题:假设一个非幂等后期操作,你如何捍卫你的发布请求处理程序在多次调用node.js之前,他们可以响应,从而导致数据损坏? 具体案例:我有一个匹配的API,大约需要2-3秒才能返回(由于不得不通过一个大的用户库)。 有一些操作,用户可以简单地在同一秒内调用这个操作(这是一个错误,但不在我的控制之下,因此回答这个部分并不构成对根问题的回答)。 在这些条件下,为用户select了多个匹配,这是不可取的。 所有这些快速请求都会有相同的最终结果。 具体约束: node.js / express / sequelize。 如果我们添加一个队列,每个用户的请求将会在所有其他用户的请求之上,这可能在交通繁忙时产生严重的影响。

{{#each}}中的把手表情

我build立我的下一个投资组合网站 我怎么可以在#each循环中放置句柄expression式? 这是快速生成器生成的快速应用程序。 我正在使用express-handlebars NPM包: views/home.hbs : {{#each images}} <li><img src="{{imagesFolder}}{{this}}.jpg" alt=""></li> {{/each}} routes/home.js : 'use strict'; var express = require('express'), router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('home', { layout: 'main', centering: true, titleShown: false, title: 'Hi!', description: 'Home page', keywords: 'wedding,photography,film', bodyClass: 'horizontal', imagesFolder: '\/portfolio\/weddings\/', images: [ […]

在nodejs中使用try catch是很好的

我只想知道在nodejs中使用try catch是否好。 例如,我正在使用节点js的encryption模块进行encryption和解密。 所以我正在处理任何错误,而encryption/解密在尝试赶上是一个很好的做法?????

如何通过邮差发送JSON到NodeJS Express服务器?

我试图从Chrome应用程序“邮差”通过POST发送JSON对象。 如果我将头设置为'Content-Type: text/plain' ,那么另一边的输出是一个空对象: {} 如果我将头设置为Content-Type: application/json ,我收到以下响应… '错误:无效的JSON'。 关键是设定ingredients ,其值设定为: { ["name" : "num1", "quantity" : "5"], ["name" : "num2", "quantity" : "2"], [ "name" : "num3", "quantity" : "8"]} 我在这里看到它: router.post('/add', jsonParser, function( req, res ) { if (!req.body) return res.sendStatus(400); console.log( req.body ); });

res.sendFile强制文件被下载

我试图发送一个图像在浏览器中全屏显示,但问题是,下面的代码强制文件作为附件发送(下载),类似于res.download()而不是显示图像: res.sendFile(file, {root: path.join(__dirname, '../storage')}) 有没有办法显示图像,而不强迫它被下载或没有阅读原始文件?

获取一个错误“str.substr不是一个函数”当使用我的浏览器的本地主机页面,但服务器正在运行?

在启动服务器后请求我的网页时,出现以下错误(服务器正常运行,请求页面时发生问题): TypeError: str.substr is not a function at createGetter (C:\Users\mypath\node_modules\method-override\index.js:88:11) at methodOverride (C:\Users\mypath\node_modules\method-override\index.js:50:7) at Layer.handle [as handle_request] (C:\Users\mypath\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\mypath\node_modules\express\lib\router\index.js:312:13) at C:\Users\mypath\node_modules\express\lib\router\index.js:280:7 at Function.process_params (C:\Users\mypath\node_modules\express\lib\router\index.js:330:12) at next (C:\Users\mypath\node_modules\express\lib\router\index.js:271:10) at logger (C:\Users\mypath\node_modules\morgan\index.js:144:5) at Layer.handle [as handle_request] (C:\Users\mypath\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\mypath\node_modules\express\lib\router\index.js:312:13) 我还在学习关于MEAN栈,请耐心等待,我的server.js如下: var express = require('express'), favicon = require('serve-favicon'), stylus = require('stylus'), logger = require('morgan'), methodOverride […]

表示进行asynchronous调用的中间件

我们有一个NodeJS Express应用程序,我们已经实现了一个自定义分析后端。 现在,我们正在决定如何实现跟踪机制,针对function手机等JS禁用的浏览器。 我们正在考虑的一种devise方法是创build一个中间件,拦截每个请求,从请求/上下文中提取参数并将它们发送到后端。 这是非常可扩展的,对于像我们这样的定制分析解决scheme来说非常合理。 另一种方法是创build一个像谷歌分析那样的跟踪像素,然后从中提取数据。 但是,这似乎是一个定制跟踪解决scheme的可扩展性更小的解决scheme,因为参数和数据结构可以随时改变或放大,不像GA。 我的问题是这样的 – 是否有任何其他的方面,使中间件,使asynchronous请求? 在创build服务器时,我们需要了解什么,因为对服务器的每个请求都要通过这个中间件? 我们是一个相当大的应用程序,每分钟几十万的stream量。

Node.js Express app:如果存在cookie,则将CSS class添加到服务器端的元素中

我有一个快速的静态网站应用程序。 我用app.js中的cookie调用我的网站的翻译: // i18n app.get('/hu', function (req, res) { // http://127.0.0.1:3000/hu res.cookie('locale', 'hu', { maxAge: 900000, httpOnly: true }); res.redirect('back'); }); app.get('/en', function (req, res) { // http://127.0.0.1:3000/en res.cookie('locale', 'en', { maxAge: 900000, httpOnly: true }); res.redirect('back'); }); 如果有人访问http://127.0.0.1:3000/en URL,则会存储调用翻译的Cookie。 hu是默认的语言,当有人第一次访问我的网站时,没有存储任何cookie。 但是,如何在英文翻译处于活动状态时将CSS类添加到我的网站? 我有一个导航栏,中间是水平居中的标志。 在英语语言中,单词的长度不同,甚至导致居中的柔性盒元素left-nav | logo | right-nav left-nav | logo | right-nav left-nav | […]

如何解码用x-www-form-urlencoded编码的Javascript对象的数组?

我发送POST请求以下数组: let bookings = [{ owner : clientId, businessId : businessId, service : serviceId, startDate : new Date() }, { owner : clientId, businessId : businessId, service : serviceId, startDate : new Date() }]; 在服务器上,我有以下设置: app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); 并获得以下req.body内容: 0[owner]=56fd4dcf8b98ce1c3d87e3ad, 0[businessId]=56fd4dcf8b98ce1c3d87e3ac, 0[service]=56fd4dcf8b98ce1c3d87e3ab, 0[startDate]=2016-03-31T16:18:23.220Z, 1[owner]=56fd4dcf8b98ce1c3d87e3ad, 1[businessId]=56fd4dcf8b98ce1c3d87e3ac, 1[service]=56fd4dcf8b98ce1c3d87e3ab, 1[startDate]=2016-03-31T16:18:23.220Z 我怎样才能解码这回JavaScript数组的对象?