Articles of express

Heroku无法在heroku(Node.js)上find本地模块

我正在做一个Node.js应用程序,并使用一个公开我的twitter API令牌/秘密的config.js文件。 我这样做是因为我计划在完成应用程序后开放源代码,并且希望保留这些私有的(因此已经把这个文件放在我的.gitignore 。 反正,对我的问题 – 我得到以下错误日志: 2012-04-09T22:41:12+00:00 app[web.1]: node.js:134 2012-04-09T22:41:12+00:00 app[web.1]: ^ 2012-04-09T22:41:12+00:00 app[web.1]: throw e; // process.nextTick error, or 'error' event on first tick 2012-04-09T22:41:12+00:00 app[web.1]: Error: Cannot find module './config' 2012-04-09T22:41:12+00:00 app[web.1]: at require (module.js:348:19) 2012-04-09T22:41:12+00:00 app[web.1]: at Function._load (module.js:266:25) 2012-04-09T22:41:12+00:00 app[web.1]: at Function._resolveFilename (module.js:320:11) 2012-04-09T22:41:12+00:00 app[web.1]: at Object.<anonymous> (/app/app.js:6:19) 2012-04-09T22:41:12+00:00 app[web.1]: […]

如何处理callback函数中的响应(例如nodejs中的cradle)

我在“nodejs”中使用“express”和“cradle”。 如果我请求我的数据库,我必须定义一个callback来处理响应。 不幸的是我没有访问res(响应)在我的callback函数。 这个问题的最佳做法是什么? 这是我的代码。 var cradle = require('cradle'); var db = new cradle.Connection().database('guestbook'); app.get('/guestbook', function(req, res) { db.view('guestbook/all', function(err, doc) { console.log(doc); // How can I use res in this callback // to send the response? }); });

POST数组数据到Express被parsing为JSON

我的应用程序是使用Express的Node.js。 使用jQuery POST从我的客户端发送testing数据: { title: 'hello', notes: [ {title: 'note 1'}, {title: 'note 2'} ] } 这是我的服务器代码的结果: { title: 'hello', notes: { '0': { title: 'note 1' }, '1': { title: 'note 2' } } } 我想获得数组笔记作为一个数组插入到我的数据库。 我错过了什么? 由于我不能自己添加一个答案8小时(跆拳道?),但它并没有真正回答为什么Express.bodyParser不正确parsingJSON 好的我可以通过使用: JSON.stringify ( data ) 在客户端然后服务器端使用 JSON.parse( req.rawBody ) 这感觉不对,为什么Express.bodyParser没有正确parsingJSON?

MongoDB和Node.js中的dynamic查询

我正在使用后端Mongodb的nodejs / express应用程序。 在我的一个API调用中,取决于是否存在特定查询string参数,或者其他我想用$ gt或$ lt来向Mongodb发出查询。 在某些情况下,我们希望使用$ lt来请求所有小于tokenId ,但在其他情况下,我们希望使用$ gt的值大于tokenId 。 我们如何做到这一点,而不重复查询? 这是一个示例查询: collection.find({'film_id': {$in : genre}, '_id': {$lt: tokenId}}).sort({'_id': -1}).limit(25).toArray(function(error, films) 有没有办法dynamic创build查询,而不是实际做两个不同的查询?

如何在MongoDB中为NodeJS Express应用程序存储站点configuration?

我有一个使用MongoDB和Jade模板语言在NodeJS 0.8.8上运行的Expressjs应用程序,我希望允许用户configuration许多站点范围的显示选项,例如页面标题,徽标图像等。 我如何将这些configuration选项存储在mongoDB数据库中,以便我可以在应用程序启动时读取它们,在应用程序运行时操作它们,并将它们显示在jade模板中? 这是我的一般应用程序设置: var app = module.exports = express(); global.app = app; var DB = require('./accessDB'); var conn = 'mongodb://localhost/dbname'; var db; // App Config app.configure(function(){ … }); db = new DB.startup(conn); //env specific config app.configure('development', function(){ app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); // etc // use date manipulation tool moment app.locals.moment = […]

处理expressJS中的mongodb连接

即时通讯使用expressJS和mongoDB,我试图坚持我的MongoDB连接在一个地方打开整个应用程序。 我应该怎么做? 我不想每次都在我的每个path/模型文件中打开它,如下所示: moods.js(示例文件,我有很多,每个集合一个) exports.findAll = function(req, res) { db.collection('moods', function(err, collection) { collection.find().toArray(function(err, items) { res.send(items); }); }); }; …. some other methods 和主要的app.js文件: var express = require('express'); var routes = require('./routes'); var mood = require('./routes/moods'); var http = require('http'); var path = require('path'); var app = express(); // all environments app.set('port', process.env.PORT || […]

节点JS调用module.exports中的“本地”function

如何从module.exports声明的另一个函数中调用函数? 我有MVC结构节点js项目和一个名为TestController.js的控制器。 我想访问控制器内的方法,但使用this关键字给出了下面的错误: 不能调用未定义的方法getName "use strict" module.exports = { myName : function(req, res, next) { // accessing method within controller this.getName(data); }, getName : function(data) { // code } } 如何访问控制器内的方法?

用于Express.js的Rest APIvalidation和会话pipe理

我一直在研究RESTful身份validation,而且我仍然不能得到一个非常清晰的想法,我怎么能devise我的networking架构! 我有很多问题没有回答 我希望我的API能够被传送到移动设备和networking,而且我正在使用Express v4 我不想使用基本身份validation,因为很多post都提出了一个简单的方法,或者我可以使用Passport中间件,但是我想使用基于令牌的身份validation或类似的或更好的东西,并且我想进行身份validation,所以我可以更好地理解,但我不知道我该怎么做,或者如果我明白了解! 我将在下面简化我的预期身份validation架构: 新用户的注册 客户端 发布用户名和密码到服务器(我知道如果你想使连接安全的是使用https连接,否则我会暴露我的凭据,或者你有任何其他选项除了https?否则我将需要使用公共和带有时间戳的私钥,并在发送给服务器之前散列我的凭证??我怎么做呢?或者其他更好的select?) 服务器端 使用盐密码对密码进行哈希处理,存储哈希密码和salt,然后生成一个令牌ID并发送给客户端! 而令牌ID存储在会话中或使用REDIS数据库? 是不是使用会话再次违反REST? 但是,如果我不使用会话,我怎么能存储令牌ID并与客户端进行比较? 客户端 由于现在我有令牌ID,我怎样才能存储在我的客户端? 我应该使用Cookie吗? 如果是的话,这不会违反RESTful? 以及我的手机应用程序如何存储cookie? 我还有什么其他的select,除了cookie,我不能想到任何! 授权API 客户端 现在,我有令牌ID,每当我想向服务器发送请求时,我都会将其放置在授权头中。 服务器端 当收到请求时,服务器将检查令牌API,并将其与会话令牌进行比较,如果为真,则请求允许拒绝 这是一个快速应用程序授权的标准方式? 对于这篇冗长的文章我感到抱歉,但是我觉得我应该真正掌握authentication和授权,因为它很重要! 我希望有人能纠正我对REST authenticatino的误解,并回答我的问题,或者build议我一个更好的方法来做到这一点!

Node.js为heroku构buildjson api

我想通过node.js构buildAPI,这在本地是正常工作,但在云中失败。 你能帮我findbug吗? 谢谢 https://infinite-gorge-6020.herokuapp.com app.get('/', function(req, res) { res.render('index.ejs'); }); app.get('/host', function(req, res) { var sessionId = app.get('sessionId'), // generate a fresh token for this client token = opentok.generateToken(sessionId, { role: 'moderator' }); res.json('host.ejs', { apiKey: apiKey, sessionId: sessionId, token: token }); 日志 2014-11-26T03:25:38.289313+00:00 heroku[router]: at=info method=GET path="/css/sample.css" host=infinite-gorge-6020.herokuapp.com request_id=18d8ce80-53a3-487f-94f5-a45f984bad67 fwd="1.171.57.36" dyno=web.1 connect=4ms service=6ms status=200 […]

如何在WebStorm 10中通过Gulpfiledebugging由nodemon启动的快速应用程序?

我有一个通过Gulpfileconfiguration运行的应用程序。 gulpfile.js 'use strict'; var gulp = require('gulp'); var sass = require('gulp-sass'); var prefix = require('gulp-autoprefixer'); var browserSync = require('browser-sync'); var nodemon = require('gulp-nodemon'); var reload = browserSync.reload; // we'd need a slight delay to reload browsers // connected to browser-sync after restarting nodemon var BROWSER_SYNC_RELOAD_DELAY = 500; gulp.task('nodemon', function (cb) { var called = […]