Tag: 快车

Nodejs Express MySQL会话存储

我一直在使用connect-mysql-session在MySQL数据库中存储会话,但它不再被维护,并且已经有两年没有更新过了。 有没有其他的mysql会话存储模块用于快速维护? 如果没有,我仍然可以使用MySQL数据库来存储用户信息等,并使用另一种types的数据库来存储会话? 像Redis或MongoDB ? 这是好的做法吗?

Node.jsasynchronouscallback工厂

我正在用Node.js,Express和MySql开发一个RESTful API 。 没有使用ORM。 为了处理资源请求,我想尽可能地重用代码。 我要实现一个callback工厂 ,我想听取您的意见。 api.js 这是主要的应用程序文件。 'use strict'; var http = require('http'), express = require('express'), app = express(), env = app.get('env'), config = require('./config')[env], pool = require('./pool')(config.database), /* node-mysql pool */ people = require('./routes/people')(pool); /* route handlers for people resource */ app.use(express.json()); app.use(express.urlencoded()); app.use(app.router); app.get('/people', people.findAll); /* middleware handling request for the […]

如何复制网站devise注入node.js项目?

我需要使用现有网站的devise编写一个程序(在node.js中)。 到目前为止,我在node.js中的程序是这样的:(这一步很简单,因为我对devise代码感兴趣,并且可以将它注入到embedded式JavaScript页面中)。

有没有可能有一个SEO友好的Express.js网站?

如果Express提供传统的路由结构(即http://yoursite.com/foo ),那么这些页面是否会显示在Google的search引擎结果页面上,类似于使用相同path结构的Wordpress博客或PHP网站?

从安全的angular度来看,Python与NodeJS的Web应用程序

我打算构build一个安全性至关重要的Web应用程序,并且需要决定在后端使用哪种技术。 我正在考虑的选项是Python(大部分是Django框架)和NodeJS(可能带有express.js)。 从安全的angular度来看,我想知道使用这些技术的优点和缺点。

splice()方法工作,但是数组在执行后不会改变

我正在使用express.js(node.js)来构build一个应用程序。 我有一个产品数组在app.js文件夹中声明为会话(req.session.products)。 这是邮政路线: router.post('/remove-cart', (req, res, next) => { var product_id = req.body.product_id; //get product id from client console.log(req.session.products) var n = req.session.products.indexOf(product_id); //get position of product id in the array req.session.products.splice(n, 1); //remove it console.log(req.session.products) }); 在路由的末尾,当n = 0时logging下来: [ '1', '3', '3', '3', '3' ] [ '3', '3', '3', '3' ] 这是我期待的,但是,这不会影响主要会议(req.session.products),并不sorting“保存”它。 为什么?

在没有Content-Length的情况下进行stream式传输

我正在使用Node.js,Express(和连接)和fluent-ffmpeg。 我们希望通过http传输存储在Amazon S3上的audio文件。 除了我们希望添加一个特性,即通过ffmpeg实时转换stream之外,我们所有的工作都正在进行。 这是行之有效的,问题是有些浏览器在实际获取文件之前提前检查。 包含Range头部的传入请求,我们用S3的所有信息回复206,有一个基本问题:我们需要事先知道文件的内容长度。 我们不知道,因为它正在经历ffmpeg。 一种解决scheme可能是在存储文件(在一个特殊的头文件中)时直接在S3上写出结果的内容长度,但这意味着我们必须经历上传之后让队列进行编码的痛苦,以便知道将来的大小要求。 这也意味着,如果我们改变压缩机或预设,我们必须经历这一切,所以这不是一个可行的解决scheme。 我们也注意到Chrome和Safari请求audio标签src的方式存在很大差异,但这可能是另一个话题的讨论。 事实是,如果没有一个合适的内容长度标题,响应一切似乎中断或浏览器进入一个无限循环或愉快地重新启动stream。 想法?

如何在Connect中间件里面对mongoDB进行asynchronous调用?

比方说,我有以下的Express / Connect中间件: return function(req, res, next) { mongoose.connect(url, options); var Config = mongoose.model('Config', mongoose.Schema({ field1: Boolean, field2: [] })); Config.findOne({}, function (err, doc) { if(!err) { if(someCondition) // some logic: send response and interrupt middleware chain res.end('Some response'); else next(); } } }; 问题是数据库调用是asynchronous的。 所以中间件函数在执行任何逻辑之前退出。 任务很简单:从mongoDB读取configuration,如果某个字段值=“某些”发送响应,否则 – 继续中间件链。 所以,我现在有两个问题 : 有没有办法在中间件内部进行asynchronous调用? 如果没有,是否有任何解决方法? (AFAIK,没有办法同步执行数据库调用)

等待Node.js表示应用程序调用http.request的for循环

我的头即将爆炸。 请知道,我等了大约一个星期才发布这个。 单凭耻辱,不能把这个混杂在浪费个人时间的巨大数量上,把我置于一个非常黑暗的地方。 我问你interwebs …请告诉我的方式。 我正在编写我的第一个NodeJS Express 4应用程序,它将pipe理我的家庭自动化系统(具有Rest API)。 杀死我的事情是我有99%的代码完成,我只是不能让它等待循环的http.request完成之前,调用我的callback函数出下面的函数。 我试过,DeAsync,Async,wait.for,…我似乎无法得到它主要是因为在一个for循环。 任何人都可以帮我解决这个问题。 我只是无法把我的脑袋绕过asynchronous或callback,以防止这个问题。 最主要的是它需要一个名为value对象的对象,然后循环它们,调用一个web服务,填充一个我调用的对象:ISYGetData,最后应该触发主callback,然后触发另一个函数来呈现一个web页面模板与响应中的数据。 任何帮助将不胜感激。 function runISYGet(runISYGetInput, resInput, runISYGetCallback) { //console.dir(runISYGetInput); //console.log('length:' + runISYGetInput.length); ISYGetData = []; for (var i = 0; i < runISYGetInput.length; i++) { // runISYGetInput Object Example: // runISYGetInput = [ // { id: "36981", operation: "on" } // , { […]

connect-mongo会话集合是空的

我使用连接mongo模块mongo会话存储 var express = require('express'); var http = require('http'); var mongoose = require('mongoose'); var db = 'mongodb://localhost:27017/test'; mongoose.connect(db); mongoose.connection.on('open',function(db){ console.log('connected ??') }) var MongoStore = require('connect-mongo')(express); …. app.use(express.cookieSession({ secret : 's3cr3t', store : new MongoStore({ mongoose_connection : mongoose.connection }), cookie : { maxAge : 60000 // 60k msconds } }) 我可以看到connected? login。 但是当我打开Mongo尝试db.sesssions.find()它reutns什么。 我提出了隐身的请求,即清除cookie,但数据库只是空的,但创build了testing数据库和会话集合