Tag: 表示

在Node中为module.exports使用包装匿名函数是不好的做法?

我最近开始在我的NodeJS express模块​​中使用包装匿名函数,因为它有助于我编写更清晰的代码。 然而,我不确定这是否被认为是坏的/良好的做法在节点环境(也许一些debugging/优化问题?),它被Coffeescript广泛使用,所以我想它一定是好的,是吗? Express Controller示例: module.exports = (function() { function LinksController() {} var moment = require('moment'), _ = require('underscore'), Q = require('q'); LinksController.edit = function edit(req, res, next) { … } return LinksController; })();

从Node.js应用程序提供图像的最佳方式(使用快递)

我们设置了一个公共文件夹,其中包含50个可移植networkinggraphics格式的小图像,基本上是用于工具栏devise的图标(45×45像素)。 考虑以下用于使用express设置公用文件夹的Node.js代码: app.configure(function AppConfig() { app.set('port', 8080); app.use(express.bodyParser()); app.use(express.errorHandler()); app.use(express.cookieParser()); app.use(express.static(app.root + '/app/public')); // <== contains 50 icons in .png format app.engine('html', require('hbs').__express); app.set('views', app.root + '/views/html'); app.set('view engine', 'html'); }); 由于第一页始终是“login”页面,因此我希望在用户inputlogin详细信息时,所有工具栏图标图像都将caching在第一页加载自己的背景上。 在search如何在后台执行此操作时,我遇到了Image Sprite概念 。 但我需要不同的解决scheme来caching尚未请求的图像。 有没有人能告诉我如何做到这一点? 更新:我试图使用标签本身请求一个单一的图像(.png),这是所有50 大小:0.76MB的图像精灵,现在当我加载login页面加载图像,然后用户可以看到用户界面。 所以问题是我想它先显示用户界面,然后加载像AJAX背景的图像。

为什么我不能使用来自相关mongo文档的id在GridFS上设置id

我的应用程序使用节点0.10.1,表示3.1.1,mongoose3.6.4,mongo 2.4.1和gridfs-stream 0.4.0。 我已经build立mongoose和网格stream与共享连接如下: /************* app.js ***************/ //Added this in edit to show setup of mongoose and gridfs-stream var mongoose = require("mongoose"); var Grid = require('gridfs-stream'); Grid.mongo = mongoose.mongo; global.conn = mongoose.createConnection(dbUri); conn.once('open', function(){ global.gfs = Grid(conn.db); }); 我正在尝试使用gridfs-stream来上传/下载文件。 我的上传看起来像: exports.uploadFile = function(req, res){ var file = req.files.upload; var docId = mongoose.Types.ObjectId(req.query.docId); var filename = […]

不加载“express-validator”:迁移到Express 3

包含“express-validator”的我还没有完成加载的应用程序,显然是我定义,使用或调用的位置是不正确的,正如对此问题的评论中所build议的。 这是我的app.js的一部分,感谢所有的build议: var express = require('express') , expressValidator = require('express-validator') , routes = require('./routes') , http = require('http') , path = require('path'); … var app = express(); app.set('port', process.env.PORT || port); app.set('views', __dirname + '/views'); app.engine('.html', require('ejs').renderFile); app.set('view engine', 'html'); app.use(express.logger('dev')); app.use(express.bodyParser()); // The problem app.use(expressValidator); app.use(express.methodOverride()); app.use(express.static(path.join(__dirname, 'public'))); app.use(express.cookieParser()); app.use(express.session({ secret: 'keyboard test' })); […]

如何使expressjs像facebook一样支持批量请求

我有一套不同方法的路线。 我想让expressjs支持与Facebook, Facebook Batch Request非常相似的批量请求 。 有人知道该怎么做吗? 而我不想让3回送连接处理批处理请求。

ExpressJS上的子域

我正在开发与ExpressJS的应用程序。 我想在这个应用程序上使用子域(虚拟子域) 有什么办法来解释这个url; http://customer_name.mysite.com 如 http://mysite.com/customer_name 我现在的networking地址映射在这样的控制器上; app.get('/:customer_name/?', function(req, res, next) { //something functions }); 提前致谢

如何从控制器/ EJS访问应用程序? Express.js

我想从我的控制器或EJS视图访问app.routes,但应用程序var不存在。 你知道我怎样才能访问我在config / routes.js中定义的所有路由? 谢谢。 PS:我使用基于express.js的sails.js。

节点expression模块抛出'没有方法urlencoded'错误

var express=require('express') var app=express(); console.log("Encoded ",express.urlencoded()); app.use(express.urlencoded()); 上面的代码会引发以下错误: [user@localhost nodejs]$ node program.js /home/user/Desktop/nodejs/program.js:41 console.log("Encoded ",express.urlencoded()); ^ TypeError: Object function createApplication() { var app = function(req, res, next) { app.handle(req, res, next); }; mixin(app, proto); mixin(app, EventEmitter.prototype); app.request = { __proto__: req, app: app }; app.response = { __proto__: res, app: app }; app.init(); return app; […]

mongoosefindOnecallback给我null

在下面的代码中,obj在findOnecallback中接收null。 不明白为什么。 在我的数据库中,它看起来像这样。 MongoDB shell version: 2.2.0 connecting to: test > use test switched to db test > db.Restaurant.findOne(); { "_id" : ObjectId("53372f9714b4d69cbfa2bbaf"), "name" : "Printz", "visit" : "2014-04-02 19:00:00" } 代码app.js /** * Module dependencies. */ var express = require('express'); var http = require('http'); var path = require('path'); var moment = require('moment'); var mongoose […]

快递| asynchronous制作多个http请求

我目前正在构build一个小型节点应用程序,它可以进行几个API调用,并呈现一个包含图表的网页。 我使用快递和玉器作为渲染引擎。 问题是,我是相当新的JavaScript,我不知道如何计划我的HTTP请求,所以我可以传递一个对象的variables,我从api(HTTP获取),当有多个请求。 我不知道如何绘制出一个单一的对象,并将其发送给玉石渲染引擎。 这是我到目前为止: app.get('/test', function(req, res) { apiRequestGoesHere(name, function(error, profile) { //Get some data here }); anotherApiRequest(tvshow, function(error, list) { //Get some data here }); res.render('test', data); }); 现在,页面呈现和请求还没有完成,如果我把res.render放在其中一个请求中,我不能访问其他的数据。 所以我想要一个方法来设置它,所以我可以有多个api调用,然后从其他api返回给我的一些元素中创build一个对象,并将其发送给Jade,以便我可以使用页。