Tag: express

从mongodb游标stream到node.js中的Express响应

我在所有的花式node.js / mongodb / express平台上玩耍,偶然发现了一个问题: app.get('/tag/:tag', function(req, res){ var tag=req.params.tag; console.log('got tag ' + tag + '.'); catalog.byTag(tag,function(err,cursor) { if(err) { console.dir(err); res.end(err); } else { res.writeHead(200, { 'Content-Type': 'application/json'}); //this crashes cursor.stream().pipe(res); } }); }); 正如你可能猜到的, catalog.byTag(tag, callback)对Mongodb执行find()查询并返回游标 这导致错误: TypeError: first argument must be a string or Buffer 根据mongodb驱动程序文档 ,我试图通过这个转换器stream() : function(obj) {return JSON.stringify(obj);} […]

为什么明确告诉我,我的默认视图引擎没有定义?

我正在使用nodejs和mongodb在后端为我正在工作的应用程序。 我正在使用快递testing应用程序,我试图使用ejs呈现我的HTML文件。 但是,我有我的默认视图引擎没有被定义的问题。 这是我的app.js: /** * Module dependencies. */ var express = require('express') , routes = require('./routes') , user = require('./routes/user') , http = require('http') , path = require('path'); var conf = require('./conf'); var app = express(); var mongoose = require('mongoose'); , Schema = mongoose.Schema , ObjectId = mongooseSchemaTypes.ObjectID; var UserSchema = new Schema({}) , […]

思考使用express.js而不是Ruby on Sinatra?

我正在开发一个社交应用程序,并考虑使用express.js / nodejs而不是我最初的select,Sinatra / Ruby。 我最担心的是Ruby中可用的开源项目,以帮助快速完成任务。 第二个主要问题是express.js的稳定性/成熟性和完整性。 任何反馈意见,欢迎。

ExpressJS:res.redirect()不能按预期工作?

我一直在这个问题上挣扎了两天,尽可能地用google和stackoverflow,但是我无法解决这个问题。 我正在构build一个简单的节点应用程序(+ Express + Mongoose),其中包含一个redirect到主页的login页面。 这是我的服务器咖啡代码: app .get '/', (req, res) -> console.log "Here we are : root" res.sendfile(__dirname + '/index.html') .get '/login', (req, res) -> console.log "Here we are : '/login'" res.sendfile(__dirname + '/login.html') .post '/credentials', (req, res) -> console.log "Here we are : '/credentials'" # (here comes credentials validation stuff with Mongoose) res.redirect […]

在Node.js中使用插值EJS包括

我的快车应用程序正在使用EJS,我的视图目录如下所示: ./views ./contents home.ejs ./includes header.ejs footer.ejs layout.ejs 我试图加载home.ejs在我的layout.ejs视图有条件地基于本地variables命名contents在我的routes / index.js。 该文件看起来像这样: /* * GET home page. */ exports.index = function(req, res){ res.render('index', { title: 'Home', contents: 'home.ejs' }); }; 理想情况下,我可以简单地写(在layout.ejs中): <% include '/contents' + contents %> 尾部的“contents”是包含要加载的正文文本的相对path的局部variables。 但是,唉,看起来EJS总是按照一个include指令的字面意思解释文本,而且没有任何插值魔法发生的机会。 我也试图无济于事: <% function yieldContent(contents){ %> <% var contentPath = 'contents/' + contents; %> <% include contentPath […]

在Node.JS中parsingMicrosoft Office文件

我正在开发一个用户可以上传Microsoft Office文档文件的Web应用程序。 现在,我们的服务器正在使用Express.js运行Node.JS,并且我们托pipe在Heroku上。 因此,我不认为我可以安装abiword或catdoc等程序。 我可以处理file upload,但不能parsing文档的内容。 我如何阅读doc文件的内容? 这些信息将被放入数据库中。 保留基本格式(粗体,斜体,下划线)会很好,但不是必需的。

在Rest API中使用Facebook维护Express和NodeJS中的JWT的密钥和访问令牌

我有两个应用程序: 服务器(REST API服务器) 节点js performance jsonwebtokens 表示,智威汤逊 mongoose 客户端(Portable Front-end) 引导 Angular JS 本地存储 angular的Facebook angularJWT 晚些时候,客户端应用程序将移植到Android,iPhone和其他平台使用phonegap。 对于OAuth,我使用Facebook作为提供者。 现在,我刚刚意识到JSON Web Tokens是这种设置的方式。 我的问题是一个体系结构,而不是语法 – 如何在nodejs中使用JWT签署Facebook访问令牌和用户ID时pipe理密钥? 所以这是如何在我的应用程序的stream程: Angular 客户端有一个loginbutton 用户单击button> Facebook身份validation启动 客户端收到user_id和FB访问令牌 客户端发送[ POST JSON主体 ] user_id和访问令牌到Node + Express服务器在' http://server.com/auth/login ' 节点服务器已经将express-jwt应用于除/ auth / login之外的所有路由 var expressJwt = require('express-jwt'); var jwt = require('jsonwebtoken'); app.use(expressjwt({secret:''})。unless({path:['/ auth / login']})); […]

在浏览器中直接访问URL时,angular度路由不起作用,但在点击后工作?

我有一个目录结构的angular度应用程序 app ..views ….partials ……main.jade ……foo.jade ….index.jade 和路线定义如下: “严格使用”; angular.module('myApp', [ 'ngCookies', 'ngResource', 'ngSanitize', 'ngRoute', 'firebase', 'myApp.config' ]) .config(function ($routeProvider, $locationProvider) { $locationProvider.html5Mode(true); $routeProvider .when('/', { templateUrl: '/partials/main', controller: 'MainCtrl' }) .when('/foo/:fooName', { templateUrl: '/partials/foo', controller: 'FooCtrl' }) .otherwise({ redirectTo: '/' }); }); 我在服务器端使用快递,相关的代码是: // server.js app.configure('development', function(){ app.use(express.static(path.join(__dirname, '.tmp'))); app.use(express.static(path.join(__dirname, 'app'))); app.use(express.errorHandler()); }); app.configure('production', […]

我怎样才能得到(Express的)sessionID的WebSocket连接

我正在使用WebSockets npm install ws与Express运行在同一个端口上。 我想从刚刚build立并升级到WebSocket的HTTP连接中获取关联的“sessionID”。 // start express listening server.listen(conf.server.port, conf.server.host); var WebSocketServer = require('ws').Server , wss = new WebSocketServer({server: server}); wss.on('connection', function(ws) { var sessionID = // how do I get this? ws.on('message', function(message) { console.log('received: %s', message); }); ws.send('something'); }); 如何才能做到这一点? (我目前通过在页面中发送sessionID来解决这个问题,但这很丑陋。)

Node.js – 找不到模块

我正在使用Node Boilerplate ,它一切正常,直到我决定创build另一个项目(在另一个目录中)。 现在我有两个不同的文件夹完全相同的代码库(这个项目是IS)。 我可以运行一个没有任何问题,但另一个失败: % node app.js node.js:116 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: Cannot find module 'connect/middleware/router' at Function._resolveFilename (module.js:299:11) at Function._load (module.js:245:25) at require (module.js:327:19) at Object.<anonymous> (/home/gotts/Sites/nodejs-uploadr/lib/express/lib/express/server.js:17:14) at Module._compile (module.js:383:26) at Object..js (module.js:389:10) at Module.load (module.js:315:31) at Function._load (module.js:276:12) at require (module.js:327:19) at Object.<anonymous> […]