Tag: 表示

修改Express.js请求对象

在express.js中,我想为每个URI侦听器的请求对象提供一个附加属性。 这将提供协议,主机名和端口号。 例如: app.get('/users/:id', function(req, res) { console.log(req.root); // https://12.34.56.78:1324/ }); 我当然可以连接req.protocol,req.host,并以某种方式传递每个URI侦听器的端口号(似乎从req对象中缺less),但我希望能够在所有这些都可以访问这些信息。 另外,主机名可以在请求之间变化(机器有多个接口),所以我不能在应用程序启动时连接这个string。 目标是向消费者提供指向该API中更多资源的URI。 有没有什么方法可以告诉Express我想要req对象有这些额外的信息? 有没有更好的办法做到这一点比我概述?

结合反应和玉石

我正在与快递+反应工作的同构javascript应用程序。 我们开始使用翡翠作为静态内容的服务器端模板,但是将这两者结合起来很快变得笨拙。 我们结束了这样的事情: 在快递路线: router.get("/", function(req, res) { var webpackStats = require('../../config/webpack-stats.json'); var reactHtml = React.renderToString(HiwApp({})); var slideshowHtml = React.renderToString(slideshowApp({})); var config = { webpackStats: webpackStats, reactOutput: reactHtml, slideshowHtml: slideshowHtml }; res.render("how_it_works/howitworks", config); }); 在玉: body .company-logo.center #react-main-mount != reactOutput include ./content_block_1.jade include ./content_block_2.jade #slideshow-main-mount != slideshowHtml 这是非常脆弱的 – 如果我们想要jsx,那么需要更多的jsx模板,我们必须确保我们的订单正确。 我的想法是用jsx做这一切 。 我知道有这样的事情React.renderToStaticMarkup,但是这并不能解决静态页面混合dynamic的问题。 大问题:如果我们决定用jsx(包含所有组件的React.renderToString(App({}); )来做所有这些事情,那么调用React.renderToString(App({});这会是一个主要的性能问题吗?有更好的方法来做到这一点,轻松地结合静态和dynamic块?

使用react-router并通过Passport.js进行身份validation – 可能吗?

所以我正在开发一个包含React,Express.js + Passport和Webpack的项目。 我理解通过react-router将所有内容推送到“主”React组件的概念,然后让它散列出给定路线显示的内容。 我想这在这里会很好。 首先,我是React新手。 我的顾虑是: 1)我可以/我怎样才能使用护照来validation我的路线? 如果我正确理解react-router,我将在我的express app.js文件中有一条path,指向名为<Application/>的React组件。 但是,护照需要router.get('/myroute', isAuthenticated, callback)来检查会话。 反应路由器是否仍然可以这样做? 2)此外,如果可能的话,我如何将Express中的path的值传递给我的视图,在React中? 我知道在一个典型的观点,我可以使用<%= user %>或{{user}}如果我从我的路线传递。 这可能吗?

灰烬与节点(MEEN堆栈?)

我已经在Rails平台上构build了一年多的应用程序。 这就是说,如果你能够对Rails进行任何比较,它可能会帮助所有相关方。 只是一个想法。 无论如何,我试图围绕节点,前端框架,烬。 我最初对MEAN栈的绊脚石感兴趣。 深入挖掘之后,我意识到自己并不太喜欢angular色,并开始寻找替代品。 Ember看起来非常棒,语法看起来更干净,没有DOM的所有标记。 我想尝试mongoDB,我觉得这种方法会教我很多。 我想问的是Express。 Express在使用Node时有什么作用? 看来Ember(即使是Angular也是如此)有一个非常有performance力的路由器。 在我对这一切的有限理解中,我认为Express是为了路线? 我发现这似乎是一个MEEN堆栈。 MEAN的package.json是巨大的,但是我连接到的是非常小的,只是表示,mongoose和请求。 另一个问题,我想是在MEAN / MEEN堆栈中不同的angular色是什么? 那有意义吗? 我有点懒散,哈哈,但是我希望继续研究和玩这个东西,直到我有了这个“啊哈! 那一刻,你知道吗? mongoose – 似乎是一个更好的方式与mongoDB交互? express – 特定于节点的路由? 请求 – 似乎很简单。 将外部请求发送到networking上的其他页面。 我看不出什么相同的包裹会是在意味着,这是真正需要的? 咕噜咕噜咕噜咕噜咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕噜 任何解释,链接,或帮助,不胜感激。

如何使用expression式来使用Node.js 0.8.x域?

如何创build将每个请求包装在自己的域中的Express / Connect中间件?

Node + Express与静态HTML。 如何将所有请求路由到index.html?

我正在使用Node + Express和handelbars来处理单个页面的Web应用程序。 目前所有的东西都可以很好地运行,从一个漂亮的server.js文件中提供的index.html: var express = require('express'); var server = express(); server.use(express.static(__dirname + '/public')); var port = 10001; server.listen(port, function() { console.log('server listening on port ' + port); }); 从http://localhost:10001/加载时,这是完美的。 我的问题是,我在应用程序中使用推状态,所以浏览器可能会显示一个URL,如http://localhost:10001/foo/bar ,然后如果我刷新页面,我得到错误Cannot GET /foo/bar因为这里没有路线。 所以我的问题,并赦免我的令人难以置信的noobishness节点,我可以让所有的请求路由到index.html? 我的应用程序中的JavaScript可以处理基于页面加载的URL参数显示正确的内容。 我不想定义自定义路由,因为数字会很大,path可以dynamic改变。

与mongoose / node.js共享数据库连接参数的最佳方法

我正在使用Mongoose来pipe理Mongo数据库。 我的连接文件很简单: var mongoose = require('mongoose') mongoose.connection.on("open", function(){ console.log("Connection opened to mongodb at %s", config.db.uri) }); console.log("Connecting to %s", config.db.uri) mongoose.connect(config.db.uri) global.mongoose = mongoose 然后在我的app.js我只是 require('./database) 而“mongoose”variables在全球范围内可用。 我宁愿不使用全局variables(至less不是直接)。 有没有更好的方式通过节点(我使用express.js)通过单例模式或其他方法共享数据库连接variables?

Node.js / Express.js – 如何重写/拦截res.render函数?

我正在用Connect / Express.js构build一个Node.js应用程序,并且我想拦截res.render(view,option)函数在将代码转发到原始渲染函数之前运行一些代码。 app.get('/someUrl', function(req, res) { res.render = function(view, options, callback) { view = 'testViews/' + view; res.prototype.render(view, options, callback); }; res.render('index', { title: 'Hello world' }); }); 它看起来像一个人为的例子,但它确实适合我正在构build的整体框架。 我对JavaScript和OOP和Prototypalinheritance的知识有点弱。 我将如何做这样的事情? 更新:经过一些实验,我想出了以下内容: app.get('/someUrl', function(req, res) { var response = {}; response.prototype = res; response.render = function(view, opts, fn, parent, sub){ view = 'testViews/' + […]

Nodejs / Expressjs应用程序结构

说我有这个代码来分隔expressjs路线: module.exports = function(express,app,client) { app.get('/', function(req,res,next) { var query = 'SELECT * FROM users LIMIT 10'; var user = client.query(query, function (err, results, fields) { res.render('index', { title: 'test', users: results }); client.end(); }); }); } 并要求在app.js : require('./controllers/routes.js')(express,app,client); 1)如何以最好的方式将db查询分隔成新文件? 即使我分开数据库逻辑,这个文件也会变得很大。 2)什么是分开路线的好方法? 也许单独的模块? 然后在app.js需要它们?

如何用express.jsconfigurationdynamic路由

我有一个route.js,看起来像这样: module.exports = function(app) { app.get('/tip', function(req, res) { res.render("tip"); }); app.get('/article', function(req, res) { res.render("article"); }); app.get('/article1', function(req, res) { res.render("article1"); }); app.get('/article2', function(req, res) { res.render("article2"); }); app.get('/article3', function(req, res) { res.render("article3"); }); app.get('/modules/:name', function(req, res) { var name = req.params.name; res.render('modules/' + name); }); app.get('/modules/esaver/:name', function(req, res) { var name = req.params.name; […]