草庐IT

Express-WS

全部标签

javascript - express req.session 对象是如何持久化的?

我对学习Node和Express非常陌生,我仍在尝试用express来理解代码流。假设我们在session.js中有如下代码:app.post('/session',notLoggedIn,function(req,res){User.findOne({username:req.body.username,password:req.body.password},function(err,user){if(err){returnnext(err);}if(user){req.session.user=user;res.redirect('/users');}else{res.redire

node.js - express 和 express-generator 有什么区别

如您所知,express最近发布了4.1.0。现在您不能通过npmintall-gexpress直接使用命令行“express”,这在3.x版本中运行良好。当我阅读包中的Readme时,我看到了express-generator。在npminstall-gexpress-generator之后,我就可以使用命令行了。那么,有什么区别呢?仅用于全局安装? 最佳答案 在express4中,express样板生成器命令行被提取到它自己的模块“express-generator”中,因为生成器应用程序并没有真正与expressweb框架共享

node.js - 如何在基于 Express 的 API 上设置代码覆盖率?

我遇到这个问题已经有一段时间了,我无法让现有的解决方案为我工作。我有一个用Express.js编写的Node.jsAPI。我一直在使用Mocha、Chai和Supertest为API编写测试。这些测试主要是集成测试。一个测试可能如下所示:it('shouldfailtoregisteranewuserwithouttheproperinformation',function(done){api.post('/user').send({}).expect(400).expect('Content-Type',/json/).end(function(err,res){should.exi

json - 使用 Express.js (node.js) 进行动态路由的最佳方式

我正在尝试使用express.js创建一个简单的CMS,以动态创建路由。它从如下所示的数据库中获取JSON:pagesfromdb={home={paths=['/','/home','/koti'],render='home.ejs',fi_FI={html='Heimaailma!'},en_US={html='HelloWorld!'}},about={paths=['/about','/tietoja'],render='general.ejs',fi_FI={html='Tietoja'},en_US={html='AboutUs'}}}并像这样遍历创建路由的对象:Objec

node.js - nodejs express - 区分大小写的 URL

如何让URL区分大小写?app.get()app.get('/([a-z]{2}/)api*',function(request,response){});这里app.get()捕获/EN/api/eN/api我该怎么做才能只捕获像/en/api这样的小写URL?? 最佳答案 来自express.jsapidocscasesensitiverouting-Enablecasesensitivity,disabledbydefault,treating"/Foo"and"/foo"asthesame您可以像这样更改默认值:app.se

javascript - 在 Express 中 res.render() 和 res.redirect() 的正确用法是什么?

我在解读之间的歧义时遇到了一些麻烦res.render('viewname',{msg:'Message'})和res.redirect('route')重定向功能不会让您传递“消息”,但您可能仍然想要,并且渲染功能会渲染您的View,但它不会更改您的网络应用程序的URL,也不会触发该功能是您的路线所必需的。我遇到的情况是我有一个邀请表单,它有一个更改我的URL的操作,并在该路由上触发一个函数,该函数具有成功和失败回调,我想将用户重定向到仪表板带有指示成功或失败的消息。 最佳答案 查看connect-flash以使用rails样式的

node.js - express 中间件测试 mocha chai

有没有办法在express中测试这些中间件:module.exports=functionlogMatchingUrls(pattern){returnfunction(req,res,next){if(pattern.test(req.url)){console.log('requesturl',req.url);req.didSomething=true;}next();}}我发现的唯一中间件测试是:module.exports=function(request,response,next){/**DosomethingtoREQUESTorRESPONSE**/if(!reque

node.js - Express - req.ip 返回 127.0.0.1

我的express服务器在3000端口上运行,使用nginx作为反向代理。req.ip总是返回127.0.0.1而req.ips返回一个空数组app.enable('信任代理');启用/不启用信任代理,x-forwarded-for不起作用:varip_addr=req.headers['X-FORWARDED-FOR']||req.connection.remoteAddress;nginx配置:server{listen80;server_namelocalhost;access_log/var/log/nginx/dev_localhost.log;location/{proxy

node.js - 将 Node/Express 应用程序设置为实时或生产模式的最佳方法

我目前正在将我的node/express应用程序投入生产部署,作为其中的一部分,我需要让它在生产友好模式下运行(例如,减少对stdOut的调试,将日志写入不同的地点,在发生错误时少告诉用户等)。我对此有点挣扎,因为每当我设置几乎任何类型的变量来调用“生产”模式时,它都不会在程序运行时产生影响。在开发模式下启动时,我的代码通过Gulp运行,并运行以下脚本:#!/usr/bin/envnodevardebug=require('debug')('ascema');varapp=require('../app');app.set('port',process.env.PORT||3000);

node.js - Express.js 是否支持发送无缓冲的渐进式刷新响应?

Perl的Catalyst框架允许您通过打开的连接发送逐渐刷新的响应。例如,您可以使用write_fh()onCatalyst::Response.我已经开始使用Node.js,但找不到等效的方法。如果我想发送一个大的CSV文件,大约200兆,有没有办法做到这一点,而无需在内存中缓冲整个CSV文件?诚然,如果您在一定时间内不发送数据,客户端将超时,因此如果-promise会很好-但无论如何可以这样做吗?当我尝试在回调中执行res.send(text)时,我得到Express500Error:Thissockethasbeenendedbytheotherparty而且,Express.